题目: 有10个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下来的是原来第几号的那位。
public class Solution{
public static void main(String[] args) {
int[] people = new int[10];
//给每个人编号
for(int i = 0;i<10;i++){
people[i] = i+1;
}
//报数标志
int flag = 0;
//退出人数
int quitpeople = 0;//最初所有人都在圈里,所以0人退出
int i = 0;
while(quitpeople < 9){ //退出人数小于9循环结束
if(people[i] != 0){
//该编号的人还在圈中
flag++;
}
if(flag == 3){
flag = 0;
people[i] = 0;
quitpeople++;
}
i++;
if(i == 10){
i = 0;
}
}
for(int j = 0;j<10; j++){
if(people[j] != 0){
System.out.println(j+1);
}
}
}
}