public static void main(String[] args) {
// 30個人圍成壹圈,這裏用List表示30個人。
List<Integer> personCycle = new ArrayList<Integer>();
for (int i = 1; i <= 30; i++) {
personCycle.add(i);
}
// 報數起始號碼
int callNo = 1;
// 循環條件:List還多余15個人。
while (personCycle.size() > 15) {
for (Iterator<Integer> it = personCycle.iterator(); it.hasNext();) {
Integer no = (Integer) it.next();
// 報數到9的時候,剔除出這個人。同時恢復報數起始號碼:1
if (callNo ++ == 9) {
System.out.println(no);
it.remove();
callNo = 1;
}
}
}
}
運行結果是:
9
18
27
6
16
26
7
19
30
12
24
8
22
5
23