------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
import java.util.ArrayList; import java.util.List; /* * 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。 * 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人? * 分析: * 用集合存储1-100这100个整数 * 从1开始一直数,直到第14个,把前13个数移除并放到集合末位,当到第14个数时把该数删除,则 * 第15个数就变成第一个数了,如此一直进行下去,直到集合中只剩下1个数。输出这个数即可。 */ public class Test9 { public static void main(String[] args) { // 定义集合 List<Integer> list = new ArrayList<Integer>(); // 初始化数据 for (int x = 1; x <= 100; x++) { list.add(x); } // 一直这样操作,直到集合中只有1个元素 while (list.size() > 1) { // 从1开始一直数,直到第14个,把前13个数移除并放到集合末位,当到第14个数时把该数删除 // 即把集合的第一个元素移到集合末位,循环13次,当第14次时删除该数。 for (int y = 0; y < 13; y++) { list.add(list.remove(0)); } // 移动13此以后,现在集合的第一个元素就是要删除的数 list.remove(0); } //此时剩下的数,就是要求的数 System.out.println("最后剩下的是100人中的第"+list.get(0)+"个人。"); } }