黑马程序员技术交流社区
标题:
有100个人围成一个圈,有个问题不懂,求大神解答
[打印本页]
作者:
715596417
时间:
2016-3-24 19:23
标题:
有100个人围成一个圈,有个问题不懂,求大神解答
import java.util.ArrayList;
import java.util.Iterator;
/**
* 10、有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。 问:最后剩下的是100人中的第几个人?
*/
public class CopyOfTest10 {
public static void main(String[] args) {
ArrayList<Integer> al = new ArrayList<Integer>();
for (int x = 1; x <= 100; x++) {
al.add(x);
}
int count = 0;
while (al.size() > 1) {
Iterator<Integer> it = al.iterator();
while (it.hasNext()) {
count++;
int n=it.next();[color=Red]//这行注释掉就会有异常,为什么啊?[/color]
if (count % 14 == 0) {
it.remove();
}
}
}
System.out.println("最后剩下的是第" + al.get(0) + "人");
}
}
复制代码
作者:
yijincheng
时间:
2016-3-24 20:21
你不是要遍历嘛。int n = it.next(); 重要的是后半句“it.next();”前半句“int n =”可以去掉。
it.next();这个方法作用是让迭代器it指向下一个元素。没有这一句的话,it就会一直指着同一个元素不动地方,while循环不就成了死循环了,当然要报异常。
作者:
lgdbest
时间:
2016-3-24 21:30
都在看这些,所有的视频都学完了吗
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2