Java有 N 個程序猿圍成一圈順序循環報數,從第一個猿開始報數(從 1 到 4 報數,猿都是順序排列成一圈的),凡報到 4 的猿退出圈子,問最後留下的是原來第幾號的那位

package interview;

import java.util.*;

//有 N 個程序猿圍成一圈順序循環報數,從第一個猿開始報數(從 1 到 4 報數,猿都是順序排列成一圈的),
// 凡報到 4 的猿退出圈子,問最後留下的是原來第幾號的那位?
public class Main {
    public static void main (String[] args) {
        List<Integer> numList = new ArrayList<>();
        System.out.print("請輸入程序員數:");
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();
        int flag = 4;//報數爲4
        int count = 1;//計數器;
        for (int i = 0; i < num; i++) {
            numList.add(i + 1);
        }
        Iterator<Integer> iterator = null;
        while (numList.size() > 1) {
            iterator = numList.iterator();
            while (iterator.hasNext()) {
                Integer peopNum = iterator.next();

                System.out.println(peopNum + "報數");

                if (count++ % flag == 0) {//count++ 重點理解

                    iterator.remove();
                    System.out.println(peopNum + "出去");
                    count = 1;
                }
            }
        }
        System.out.println("剩下人標號爲" + numList.get(0));
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章