问题:15个猴子围成一圈选大王,依次1-7循环报数,报到7的猴子被淘汰,直到最后一只猴子成为大王。问:哪只猴子会成为大
import java.util.LinkedList;
public class exercise03 {
public static void main(String[] args) {
LinkedList<Integer> list = new LinkedList<>();
for (int i = 1; i <= 15; ++i) {
list.add(i);
}
getQue(list, 0, 7);
System.out.println(list.get(0));
}
/**
* 推出了一个公式...
* 递归地处理,当然可以递归就肯定可以非递归
* @param list 要处理的链表
* @param begin 从哪个索引开始
* @param count 报数剔除
*/
public static void getQue(LinkedList<Integer> list, int begin, int count) {
int index = begin;
while (list.size() != 1) {
// 查找出要剔除的元素
index = (index + count - 1) % list.size();
list.remove(index);
// 打印出来看看...
System.out.println(list);
getQue(list, index, count);
}
}
}