zoukankan      html  css  js  c++  java
  • Java迭代器问题 有100个人围成一个圈从1开始报数,报到14的这个人就要退出,然后其他人重新开始,从1报数,到14退出问:最后剩下的是100人中的第几个人 用listIterator迭代元素,并对集合进行删除操作

    package com.swift;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.ListIterator;
    
    public class ListIterator_baoshu14 {
    
        public static void main(String[] args) {
            /*
             * 第9题: 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。
             * 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人? 分析: * 应用List集合,将100个数放入其中 *
             * 建一个int类型标识,当为14时清零 当List集合剩余最后一个不再比较 应用listIterator迭代元素,并对集合进行删除操作
             */
    
            List<Integer> list = new ArrayList<Integer>();
            for (int i = 1; i <= 100; i++) {
                list.add(i);
            }
    
            int num;
            int flag = 0;//放到最外层循环外面,因为人数小于14人需要下一轮共同计数
            while (list.size() > 1) {// >1表示最后2个人报数到14最终剩1人 但要是>0只有1个人报数14后去除列表为空了会出异常
                ListIterator<Integer> it = list.listIterator();
                while (it.hasNext()) {
                    num = (int) it.next();
                    flag++;
                    if (flag == 14) {
                        it.remove();
                        flag = 0;
                    }
                }
                System.out.println(list.size());
            }
            
            System.out.println(list.get(0));
    
        }
    
    }
  • 相关阅读:
    使用gulp搭建less编译环境
    用原生js封装轮播图
    NodeJS
    npm使用入门
    漫谈JS 的继承方式
    同源策略、跨域解决方案
    脚本学习一(echo、echo off、@、start)
    统计英文文档里每个单词出现的次数
    Dijkstra算法和Floyd算法的正确性证明
    Prim算法和Kruskal算法的正确性证明
  • 原文地址:https://www.cnblogs.com/qingyundian/p/8289325.html
Copyright © 2011-2022 走看看