- package cn.itcast_02;
- import java.util.ArrayList;
- /*
- * 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
- * 然后其他人重新开始,
- * 从1报数,到14退出。问:最后剩下的是100人中的第几个人?
- *
- *
- */
- public class Test2 {
- public static void main(String[] args) {
- // 创建集合对象
- ArrayList<Integer> al = new ArrayList<Integer>();
- // 向集合中添加元素
- for (int i = 1; i <= 20; i++) {
- al.add(i);
- }
- //记录位置
- int index = 0;
- // 记录集合长度
- int count = 0;
- //判断特殊情况
- boolean flag = false;
- while (al.size() != 1) {
-
- count = al.size();
- for(int i=0; i<13; i++)
- {
- flag = false;
- index++;
- if(index == count && i==12)
- {
- index = al.size()-1;
- flag = true;
- }else if(index >= count)
- {
- index = 0;
- }
-
- }
-
- al.remove(index);
- if(flag)
- {
- index = 0;
- }
- }
-
- System.out.println(al);
- }
- }
复制代码 求指教
|
|