- import java.util.ArrayList;
- /*
- * 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
- * 然后其他人重新开始,从1报数,到14退出。
- * 问:最后剩下的是100人中的第几个人?
- */
- public class Test5 {
- public static void main(String[] args) {
-
- int number = countLast(100,14);
-
- System.out.println("The last one is:"+number);
- }
- private static int countLast(int total, int count) {
-
- ArrayList<Integer> list = new ArrayList<Integer>();
- for(int i = 1;i<=total;i++)
- {
- list.add(i);
- }
- //System.out.println(list);
- int index = 0;
- while(list.size()!=1)
- {
- index = (index+(count-1))%list.size();
- System.out.print("删除"+list.get(index)+"\t");
- System.out.println(" size:"+list.size());
- list.remove(index);
- }
-
- return list.get(0);
- }
- }
复制代码
我的结果也是第92个,应该是正确的。 |