问题:500勇士,从1开始报数,数到3就枪毙,然后再从1开始报数,数到3再枪毙,如此往复,问最后的幸存者站在500人中的第几位。
public class text5 {
public static void main(String[] args) {
int []person=new int[500];//初始值为0
int sum=0;//被杀掉的人的总数
int num=0;//点名的人数,超过500.
boolean flag=true;//while的标签
while(flag) {
for (int i = 0; i < person.length; i++) {
if(person[i]==1)//已经被杀掉
continue;
num++;
if(sum==499){//只剩最后一个人
System.out.println(i+1);//坐标为0开始,所以加1
flag=false;//标签为false
}
if(num%3==0)//第三个人要杀掉
{
person[i]=1;//判断杀掉
sum++;//被杀掉的总人数加1
}
}
}
}
}