import java.util.ArrayList;
/**
* @author WenQiang Wu
* @version Dec 28, 2009
*/
public class Count3Quit {
static int m = 0;
public static void main(String args[]) {
ArrayList<Integer> a = new ArrayList<Integer>();
for (int i = 1; i <= 500; i++) {
a.add(i);// 把每个小朋友的号码依次放入.
}
while (a.size() > 1) {
// 当a.size()==1就只有一个人了,也就没必要循环了,那就是最后一个了
for (int i = 0; i < a.size(); i++) {
m++; // 相当于报数
if (m % 3 == 0) { // 数到三的人退出
m = 0;
a.remove(i);
i--;
// 删掉了当前结点,后面的结点就会前移,就是索引会-1,
// 下一轮循环该从第i个开始,也就是现在的第i+1个人就是下一轮循环的第i个人
}
}
}
System.out.println("最后一个小朋友的号码是: " + a.get(0));
}
}
500人围成一个圈,数到3的人下个人就从1开始数.最后一个人的位置在那里?
最新推荐文章于 2024-10-10 09:26:55 发布