500勇士循环报数1,2,3。数到三就GG。
//a[position] = 1;表示已经GG的勇士
int a[]=new int[500];
int sum = 500;
int num = 3;
int count;
int position = -1;
for(int i = 1;i < 500;i++) {
count = 1;
while(count <= num) {
position = (position+1)%sum; //主要解决最后位置报数循环后,position变为第一位
if(a[position] == 0) //数到3后 此位置还未改变,暂时为0
count++; //数到三后++,跳出循环
}
a[position] = 1; //此时position还是数3的位置,该位置数组值置为1
System.out.println(position+1);
}
for(int j = 0;j < a.length;j++) {
if(a[j] == 0) {
System.out.println("幸存者是:"+j);
break;
}
}