[Java] 纯文本查看 复制代码
public class Test {
public static void main(String[] args) {
int arr[] = new int[100];
for(int index = 0;index < 100;) {
arr[index] = ++index;
}
int count = 1; //计数器1-14
int remaiing = 100; //剩余人数
int tempIndex; //index为99时要对index进行重置,所以设置一个变量复制当前index,避免在各个条件判断语句下都要写index的重置语句
for(int index = 0;index < 100;index++) {
tempIndex = index;
if(index == 99) //最后一个人报完数,将index重置为0。有tempIndex所以只需要在这里写一次。
index = -1;
if(remaiing == 14) //剩余人数为14时跳出循环
break;
if(arr[tempIndex] == 0) //元素为0证明该人已经退出,跳过进入下一次循环(下一人)
continue;
if(count == 14) { //报数达到14,退出该人(将元素值修改为0)
arr[tempIndex] = 0;
count = 1; //重新从1开始报数
remaiing--; //剩余人数-1
}else {
count++; //以上情况都没发生,计数器+1
}
}
//倒着遍历数组,为0的表示已退出,不输出。
for(int index = 99;index >= 0;index--) {
if(arr[index] == 0)
continue;
System.out.println(arr[index]);
}
}
}