现在有500个小孩,编号为0-499,手牵手连成一个圈,从第一个小孩开始“123123...”报数,数到三的小孩退出,求剩下的最后一个小孩的编号。
public static void main(String[] args) {
//用boolean类型来表示小孩,默认为true
boolean[] arr = new boolean[500];
for (int i = 0; i < 500; i++) {
arr[i] = true;
}
//圈内剩下的小孩的数量
int lefyCount = arr.length;
int index = 0;
int countNum = 0;
while (lefyCount > 1) {
if (arr[index] == true) {
countNum++;
if (countNum == 3) {
countNum = 0;
arr[index] = false;
lefyCount--;
}
}
index++;
if (index == arr.length) {
index = 0;
}
}
for (int i = 0; i < arr.length; i++) {
if (arr[i] == true) {
System.out.println(i);
}
}
}