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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郁金香大公爵 中级黑马   /  2015-7-31 09:00  /  184 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


/**
* 第十题:有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
*
* @author 作者--谭威
*
*/

public class Test10 {
        public static void main(String[] args) {

                ArrayList<Integer> al = new ArrayList<Integer>();    //创建List集合
                for (int i = 1; i <= 100; i++) {     //循环往集合中添加1~100的数据
                        al.add(i);
                }

                int count = 0;     //s初始化遍历集合中元素的次数

                while (al.size() > 1) {   //当集合的长度大于1时继续遍历集合中的元素
                        Iterator<Integer> it = al.iterator();   //获取最新集合的迭代器
                        while (it.hasNext()) {
                                int n = it.next();   //定义n表示具体元素
                                count++;

                                if (count % 14 == 0) {     //当遍历集合中元素的次数是14的整数倍时将该元素移除出集合
                                        System.out.println("当前删除的元素是:" + n);
                                        it.remove();
                                }
                        }
                }
                System.out.println("最后剩下的是100人中的第" + al.get(0) + "个人");
        }
}

0 个回复

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