黑马程序员技术交流社区

标题: 需求: 有100个人围成一个圈,从1开始报数,报到14的这个人... [打印本页]

作者: hnxtzouyuxi    时间: 2015-9-24 23:57
标题: 需求: 有100个人围成一个圈,从1开始报数,报到14的这个人...
  1. package com.yuxi.day0924;
  2. import java.util.ArrayList;
  3. public class Test {

  4.         /**
  5.          *         需求: 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
  6.          * 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
  7.          *
  8.          */
  9.         public static void main(String[] args) {
  10.                 // TODO Auto-generated method stub
  11.                 //建立一个集合分别把握1-100的数字存入
  12.                 ArrayList<Integer> al =new ArrayList<Integer>();
  13.                 for(int i=0;i<100;i++)
  14.                 {
  15.                         al.add(i+1);
  16.                 }
  17.                 method(al);
  18.                 System.out.println(al.get(0));
  19.         }
  20.         public static void method(ArrayList<Integer> arr)
  21.         {
  22.                 //报的数字开始值为1
  23.                 int number=1;
  24.                 while(true)
  25.                 {
  26.                         //确定集合中至少有一元素
  27.                         if(arr.size()>1)
  28.                         {
  29.                                 //循环遍历当number等入14的时候,删除集合相对应的为元素
  30.                                 for(int i=0;i<arr.size();i++,number++)
  31.                                 {
  32.                                         //当报到14的数就删除集合对应的元素
  33.                                         if(number==14)
  34.                                         {
  35.                                                 //对number重新置0
  36.                                                 number%=14;
  37.                                                 arr.remove(i);
  38.                                                 //删除后要使集合指向减1
  39.                                                 i--;
  40.                                         }
  41.                                 }
  42.                         }
  43.                         //当最集合中只有一个元素的时候就是最后留下的那个人
  44.                         else break;
  45.                 }
  46.         }
  47. }
复制代码



作者: duqiang1441    时间: 2015-9-25 00:43
看看。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2