/**
* 第10题:有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
* 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
* @author zl
*思路:
*一:利用容器存储和删除人数;
*二:循环,容器长度为1时跳出,返回元素值;
*三:循环中,数数并删除元素。
*/
public class Test10CircleCountLink {
public static void main(String[] args) {
long before = System.currentTimeMillis();
int left = circleCount(100000);
System.out.println("剩下的人的序号为:"+left );
long after = System.currentTimeMillis();
System.out.println(after - before);
}
private static int circleCount(int n) {
//定义容器并初始化
List<Integer> list = new LinkedList<Integer>();//50000人时,耗时约40ms
// List<Integer> list = new ArrayList<Integer>();//50000人时,耗时400ms
for(int i=1; i<=n; i++) {
list.add(i);
}