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));
}
}
Java有 N 個程序猿圍成一圈順序循環報數,從第一個猿開始報數(從 1 到 4 報數,猿都是順序排列成一圈的),凡報到 4 的猿退出圈子,問最後留下的是原來第幾號的那位
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.