您的位置:首页 > 其它

有100个人围成一个圈,从1开始报数,报到14的这个人就要退出, 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?

2016-02-19 20:10 495 查看
public class Test {

public static void main(String[] args) {

// 创建一个ArrayList来存储所有的人对应的数字

ArrayList<Integer> list = new ArrayList<Integer>();

// 使用for循环,向集合中添加对应的数字

for (int i = 1; i <= 100; i++) {

list.add(i);

}

// 定义一个数字,来记录报的数

int count = 1;

// 循环所有的数字,通过下面条件删除,当集合中只有一个元素时候,结束循环

for (int i = 0; list.size() != 1; i++) {

// 当循环到末尾,即i=list.size(),需要重新开始数,所有把i=置为0,重新开始数数

if (i == list.size()) {

i = 0;

}

// 当数数时候,数到了14,就把14从集合中删去

if (count % 14 == 0) {

list.remove(i--);

}

// 继续开始往下数数,所以count继续加1

count++;

}

// 输出集合中最后剩下的元素,即最后剩下的人

System.out.println(list.get(0));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: