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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xclyijin 中级黑马   /  2015-7-26 13:57  /  156 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xclyijin 于 2015-7-26 14:23 编辑

问题:有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
我看到网上有一个很简便的程序,是这样的:
  public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  int bomb=14;

  cycleGame(bomb);
  
}
public static void cycleGame(int bomb) {
  // TODO Auto-generated method stub
  //创建一个链表集合,用于存放数据

  List<Integer> list=new ArrayList<Integer>();
  
  for(int i=1;i<=100;i++)
  {
   list.add(i);
  }
  System.out.println(list);
  int s=0;
   for(int i=1;i<100;i++)
   {
    s=(s+13)%list.size();//为什么这样就可以求出下次退出的人的编号呢??想不明白。
    list.remove(s);      
       }
  System.out.println(list);
}
  



yuesefu.PNG (136.83 KB, 下载次数: 4)

yuesefu.PNG

0 个回复

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