黑马程序员技术交流社区
标题:
分享一道有点争议的入学考试题
[打印本页]
作者:
贾浩田
时间:
2014-10-18 23:18
标题:
分享一道有点争议的入学考试题
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
//要求:有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新
//开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
public class Test30 {
public static void main(String[] args){
//由于涉及到数组集合的增删,所以使用LinkedList效率更高一些
List<Integer> list = new LinkedList<Integer>();
for(int i = 1; i<=100; i++){
list.add(i);
}
List<Integer> listOut = new ArrayList<Integer>();
int num = 0;
while(list.size() > 0){ //只要集合中还有元素,就继续进行判断
num++;
Integer remove= (Integer) list.remove(0);
if(num==14)
{
listOut.add(remove); //把每次喊道14移走的元素都存入另外一个集合
num=0;
}
}
System.out.println(listOut); //打印移出队列中的元素
}
}
复制代码
不知道这道题要问的到底是什么?最后打印的集合中是移出队列的集合。大家是怎么想的啊??
作者:
刘树弘
时间:
2014-10-19 09:21
问的是没有退出数数游戏的人的标号?
作者:
贾浩田
时间:
2014-10-19 12:57
刘树弘 发表于 2014-10-19 09:21
问的是没有退出数数游戏的人的标号?
是最后一个喊14的人的标号,即移除第一批元素后,在将这些人重新围城一个圈,继续喊号,最后一个移除的人就是所求结果
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2