1 package FushiExam;
2 import java.util.*;
3 public class Text_37{
4 public static void main(String[] args) {
5 /*有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡是报到3的人退出圈子,问最后留下的是原来第几号的那位。
6 *
7 */
8 Scanner scan=new Scanner(System.in);
9 int n=scan.nextInt();
10 int count=n,j=1,countnum=0;;
11 int[] arr=new int[n+1];
12 for(int i=1;i<=n;i++) {//对数组中每个数赋值为非0数1,来标记报到为3的人
13 arr[i]=1;
14 }
15 while(count>1) {//while循环,直到留有一个人为止
16 if(arr[j]!=0) {//arr[j]=0即为退出圈子的人
17 countnum++;//用countnum来报数;1,2,3-----1,2,3------1,2,3
18 if(countnum==3) {//countnum==3即为报数为3的人,出局
19 count--;//count为游戏剩余人数,每出局一人,count值减一
20 arr[j]=0;
21 countnum=0;//countnum重置为0重新开始报数1,2,3
22 }
23 }
24 j++;//寻找下一个人
25 if(j==n+1) {
26 j=1;//当循环到最后一个人的时候,则回到开头继续重新寻找
27 }
28
29 }
30 for(int i=1;i<=n;i++) {
31 if(arr[i]!=0)
32 System.out.print("i:"+i);
33 }
34
35 }
36 }