保捱科技网
您的当前位置:首页100个人围成一个圈(编号从1到100),然后报数,报到3的下去,然后从4开始继续从1开始报数,报到3的下去,依此类推,最后剩下人的编号是?

100个人围成一个圈(编号从1到100),然后报数,报到3的下去,然后从4开始继续从1开始报数,报到3的下去,依此类推,最后剩下人的编号是?

来源:保捱科技网
public class TestMain {

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        for (int i = 1; i <= 100; i++) {
            list.add(i);
        }

        int num;
        int flag = 0;
        // 最终只剩下1人
        while (list.size() > 1) {
            System.out.println("开始:");
            ListIterator<Integer> it = list.listIterator();
            while (it.hasNext()) {
                num = (int) it.next();
                flag++;
                if (flag == 4) {
                    it.remove();
                    System.out.println("被删除的数字:"+num);
                    flag = 0;
                }
            }
        }

        System.out.println("最后剩下的人:"+list.get(0));

    }
}

 

因篇幅问题不能全部显示,请点此查看更多更全内容