黑马程序员技术交流社区

标题: 数学推理的问题? [打印本页]

作者: simonqian    时间: 2013-5-13 08:41
标题: 数学推理的问题?
本帖最后由 simonqian 于 2013-5-13 22:40 编辑

13个人围成一圈,从第1个人开始顺序报号1、2、3。凡是报到3着退出圈子。找出最后留在圈子中的人原来的序号?
作者: 王浩骅    时间: 2013-5-13 09:19
本帖最后由 王浩骅 于 2013-5-13 09:22 编辑

这不就是数三退一问题吗,网上有多是这个问题的解决,一般都是以500为数,自己改成13就行了。自己去看吧。

作者: 许智敏    时间: 2013-5-13 22:38
  1. import java.util.ArrayList;

  2. public class 报数 {
  3.         public static void main(String[] args) {
  4.                 ArrayList<String> al = new ArrayList<String>();//定义集合,存储孩子
  5.                 for(int i=1;i<=13;i++)
  6.                         al.add("第"+i+"个孩子");//添加孩子
  7.                 for(;;){
  8.                         if(al.size()==1)//剩下最后一个孩子,结束无限循环
  9.                                 break;
  10.                         for(int i=0;i<2;i++)
  11.                                 al.add(al.remove(0));//每次拿出拿出两个孩子,并添加到最后
  12.                         al.remove(0);//将第三个孩子移除
  13.                 }
  14.                 System.out.println(al);//将剩下的最后一个孩子打印。
  15.         }
  16. }
复制代码
集合操作比较方便。




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