n个人围成一圈报数,从1报到3,报到3的人退出,然后依次循环,直到剩下最后一人,这人是第几个人?

n个人围成一圈报数,从1报到3,报到3的人退出,然后依次循环,直到剩下最后一人,这人是第几个人?

import java.util.Scanner;

public class N1_3gerenshu {
 public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int [] num= new int[n];
for(int i=0;i<n;i++){
num[i]=i+1;
}
for(int i=0;i<n;i++){
System.out.print(num[i]+" ");
}
int i=0;
int quitnum=0;
int k=0;
while(quitnum < n-1){
if(num[i]!=0)
k++;
if(k==3){
num[i]=0;
quitnum++;
k=0;
}
i++;
if(i==n)
i=0;
}
System.out.println();
for(int j=0;j<n;j++){
if(num[j]!=0){
System.out.print(num[j]);
}
}

}
}

然后我输入的是12,最后输出的结果是:10

如果大家觉得有意见或者是建议,欢迎探讨!

你可能感兴趣的:(n个人围成一圈报数,然后依次循环,直到剩下最后一人,从1报到3,报到3的人退出)