/**
* 第十题:有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
*
* @author 作者--谭威
*
*/
public class Test10 {
public static void main(String[] args) {
ArrayList<Integer> al = new ArrayList<Integer>(); //创建List集合
for (int i = 1; i <= 100; i++) { //循环往集合中添加1~100的数据
al.add(i);
}
int count = 0; //s初始化遍历集合中元素的次数
while (al.size() > 1) { //当集合的长度大于1时继续遍历集合中的元素
Iterator<Integer> it = al.iterator(); //获取最新集合的迭代器
while (it.hasNext()) {
int n = it.next(); //定义n表示具体元素
count++;
if (count % 14 == 0) { //当遍历集合中元素的次数是14的整数倍时将该元素移除出集合
System.out.println("当前删除的元素是:" + n);
it.remove();
}
}
}
System.out.println("最后剩下的是100人中的第" + al.get(0) + "个人");
}
}
|
|