JAVA編程---------37、n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡是報到3的人退出圈子,問最后留下的是原來第幾號的那位。


 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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 報數問題:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位 約瑟夫環問題:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 python 實現:題目:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位 有10個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是第幾號的人 有n個人圍成一圈,順序排號。從第1個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位 有n人圍成一圈,順序排號。從第1個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來的第幾號的那位。
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM