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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© AlphaCC 中级黑马   /  2016-3-6 15:04  /  1316 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/**
* 有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) + "号!");
    }
}

5 个回复

倒序浏览
楼主 知道 哪里有基础题的链接吗
回复 使用道具 举报
这是我做入学测试题,不过论坛里有人分享过着写,我看能不能找到
回复 使用道具 举报
miaodian 发表于 2016-3-6 22:07
楼主 知道 哪里有基础题的链接吗

没有找到,你自己找一下
回复 使用道具 举报
嗯 ,好的 ,不过  ,刚才 我也找了,也没有 找到
回复 使用道具 举报
感觉这个很高大上
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马