A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package cn.itcast_02;

  2. import java.util.ArrayList;

  3. /*
  4. * 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
  5. * 然后其他人重新开始,
  6. * 从1报数,到14退出。问:最后剩下的是100人中的第几个人?
  7. *
  8. *                        
  9. */
  10. public class Test2 {
  11.         public static void main(String[] args) {
  12.                 // 创建集合对象
  13.                 ArrayList<Integer> al = new ArrayList<Integer>();

  14.                 // 向集合中添加元素
  15.                 for (int i = 1; i <= 20; i++) {
  16.                         al.add(i);
  17.                 }

  18.                 //记录位置
  19.                 int index = 0;
  20.                 // 记录集合长度
  21.                 int count = 0;
  22.                 //判断特殊情况
  23.                 boolean flag = false;

  24.                 while (al.size() != 1) {
  25.                                
  26.                         count = al.size();
  27.                         for(int i=0; i<13; i++)
  28.                         {
  29.                                 flag = false;
  30.                                 index++;
  31.                                 if(index == count && i==12)
  32.                                 {
  33.                                         index = al.size()-1;
  34.                                         flag = true;
  35.                                 }else if(index >= count)
  36.                                 {
  37.                                         index = 0;
  38.                                 }
  39.                        
  40.                         }
  41.                
  42.                         al.remove(index);
  43.                         if(flag)
  44.                         {
  45.                                 index = 0;
  46.                         }

  47.                 }
  48.                
  49.                 System.out.println(al);
  50.         }
  51. }
复制代码
求指教

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马