编程题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的哪位?
public static void main(String[] args) {
String result = solution(10);
System.out.println(result);
}
public static String solution(int total){
boolean [] totalNumber = new boolean[total];
for(int i=0;i<totalNumber.length;i++){
totalNumber[i] = true;
}
int count = 0;
int length = totalNumber.length;
while(length > 1){
for(int j=0;j<totalNumber.length;j++){
if(totalNumber[j]){
count++;
if(count == 3){
totalNumber[j] = false;
length--;
count = 0;
}
}
}
}
int result = 0;
for(int a=0;a<totalNumber.length;a++){
if(totalNumber[a]){
result = a+1;
}
}
return String.valueOf(result);
}