黑马程序员技术交流社区

标题: 问大家一个我认为很难的题 [打印本页]

作者: 一个好人    时间: 2015-4-18 18:25
标题: 问大家一个我认为很难的题
本帖最后由 一个好人 于 2015-4-19 17:43 编辑

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


这道题我考虑了很久,还是没想到解决的办法

作者: adalvik    时间: 2015-4-18 20:12
代码已经发出
http://bbs.itheima.com/thread-188794-1-1.html
作者: 马士基    时间: 2015-4-18 21:42
约瑟夫环的问题
作者: 曾宇    时间: 2015-4-18 22:19
  1. /*
  2. 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
  3. 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?*/
  4. import java.util.ArrayList;
  5. import java.util.Iterator;
  6. class  DemoLength
  7. {
  8.         public static void main(String[] args)
  9.         {
  10.                 ArrayList<Integer> arr = new ArrayList<Integer>();//创建一个存活的人的名单
  11.                 for(int i=1;i<=100;i++)
  12.                 {
  13.                         arr.add(i);//给名单上的人取名字
  14.                 }
  15.                 show(arr);//game开始
  16.                
  17.         }
  18.         private final static int kill=14;//第十四个人干掉
  19.         private static int count=0;//计数自增变量
  20.         public static void show(ArrayList<Integer> arr)
  21.         {
  22.                 ArrayList<Integer> buf = new ArrayList<Integer>();//收集将要被干掉的元素,死亡名单
  23.                 while(arr.size()>1)//如果集合大于1,继续循环
  24.                 {
  25.                         for(int i=0;i<arr.size();i++)//循环当前集合
  26.                         {
  27.                                 count++;//自增,开始数数
  28.                                 if(count%kill==0)//为14的倍数被干掉
  29.                                 {
  30.                                         buf.add(arr.get(i));//将要被干掉的人加入死亡名单
  31.                                 }
  32.                         }
  33.                         arr.removeAll(buf);//在存活的人中干掉死亡名单上的人。
  34.                         buf.clear();//清空死亡名单
  35.                 }
  36.                 System.out.println(arr);//输出最后存活的人
  37.                
  38.                
  39.         }
  40. }
复制代码

作者: duzhi409    时间: 2015-4-18 22:24
学习学习
作者: 一个好人    时间: 2015-4-19 09:44
谢谢答案,
作者: 李维、、    时间: 2015-4-19 11:10
学习了,谢谢
作者: Mr7952    时间: 2015-4-19 11:14
原来如此

作者: mono    时间: 2015-4-19 11:25
学习一下、




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