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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© OnlyStyle 中级黑马   /  2014-11-14 21:37  /  994 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  虽然目前已经面试结束,但是闲着还是会写写代码,上上论坛,偶然间发现论坛有人问这样一个问题:
有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
开始自己想办法笔算,最后还是不行,便写了一段Java代码来解决,最后得到结果为92,不知道对不对,感兴趣的可以看下,代码如下:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

public class Test7 {
        private static List<Integer> list=new ArrayList<Integer>();                                                            
        public static void main(String[] args) throws Exception{
                System.out.println(run(list));
                /*Iterator<Integer> it=list.iterator();
                while (it.hasNext()) {
                        Integer i =  it.next();
                        System.out.println(i);
                       
                }*/
        }
        public static Integer run(List<Integer> list){
                int count=0;//计数器,用于记录报数
                for (int i = 1; i <101 ; i++) {
                        //报数之前,应先判断此编号的人是否有报数资格,即容器是否包含之
                        if (!list.contains(i)) {
                                count++;//报数
                                //每报到14的整数倍,清除此编号人员的报数资格,即加入容器
                                if (count%14==0) {
                                        //System.out.println(count);
                                        list.add(i);
                                }
                        }
                        //返回最后一个报数的人
                        if ((list.size()==99)&&(count%14==1)) {
                                //System.out.println(i);
                                return i;
                        }
                        //当到末尾时,设置循环控制到开头,形成“圈”。
                        if (i==100) {
                                i=0;
                        }
                }
                return null;
        }
       
       
}

评分

参与人数 1技术分 +1 收起 理由
MVP + 1

查看全部评分

0 个回复

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