/**
* 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
* 然后其他人重新开始,从1报数,到14退出。
* 问:最后剩下的是100人中的第几个人?
* @author caich
*
*/
public class Test10 {
public static void main(String[] args) {
//创建一个集合all,集合中的元素为1,2,3,……,100,代表所有人
List<Integer> all = new LinkedList<Integer>();
for(int i = 1; i <= 100; i++) {
all.add(i);
}
int i = 0; //i表示退出的那个人在all集合中的下标
//循环99次
for(int n = 1; n < 100; n++) {
//每次循环时,求得将要退出的人在集合中的下标
i = (i + 13) % all.size();
//将集合中代表该人的元素删除
all.remove(i);
}
//循环99次,删除99个人,剩下的最后一个,就是你了
System.out.println("最后剩下的是第 " + all.get(0) + "号!");
}
}
|
|