黑马程序员技术交流社区

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

作者: 郁金香大公爵    时间: 2015-7-31 09:00
标题: 测试题10

/**
* 第十题:有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) + "个人");
        }
}





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