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 }