黑马程序员技术交流社区

标题: 测试题十 [打印本页]

作者: AlphaCC    时间: 2016-3-6 15:04
标题: 测试题十
/**
* 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
* 然后其他人重新开始,从1报数,到14退出。
* 问:最后剩下的是100人中的第几个人?
* @author caich
*
*/
public class Test10 {
    public static void main(String[] args) {
        //创建一个集合all,集合中的元素为1,2,3,……,100,代表所有人
        List<Integer> all = new LinkedList<Integer>();
        for(int i = 1; i <= 100; i++) {
            all.add(i);
        }
        int i = 0;   //i表示退出的那个人在all集合中的下标
        //循环99次
        for(int n = 1; n < 100; n++) {
            //每次循环时,求得将要退出的人在集合中的下标
            i = (i + 13) % all.size();
            //将集合中代表该人的元素删除
            all.remove(i);
        }
        //循环99次,删除99个人,剩下的最后一个,就是你了
        System.out.println("最后剩下的是第 " + all.get(0) + "号!");
    }
}

作者: miaodian    时间: 2016-3-6 22:07
楼主 知道 哪里有基础题的链接吗
作者: AlphaCC    时间: 2016-3-6 22:12
这是我做入学测试题,不过论坛里有人分享过着写,我看能不能找到
作者: AlphaCC    时间: 2016-3-6 22:17
miaodian 发表于 2016-3-6 22:07
楼主 知道 哪里有基础题的链接吗

没有找到,你自己找一下
作者: miaodian    时间: 2016-3-6 22:22
嗯 ,好的 ,不过  ,刚才 我也找了,也没有 找到
作者: kaiting    时间: 2016-3-7 08:19
感觉这个很高大上




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