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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© simonqian 中级黑马   /  2013-5-13 08:41  /  949 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 simonqian 于 2013-5-13 22:40 编辑

13个人围成一圈,从第1个人开始顺序报号1、2、3。凡是报到3着退出圈子。找出最后留在圈子中的人原来的序号?

2 个回复

倒序浏览
本帖最后由 王浩骅 于 2013-5-13 09:22 编辑

这不就是数三退一问题吗,网上有多是这个问题的解决,一般都是以500为数,自己改成13就行了。自己去看吧。
回复 使用道具 举报
  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. }
复制代码
集合操作比较方便。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马