10人圍圈排號,報3退圈,留下幾號。
阿新 • • 發佈:2018-11-15
題目: 有10個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最後留下來的是原來第幾號的那位。
public class Solution{ public static void main(String[] args) { int[] people = new int[10]; //給每個人編號 for(int i = 0;i<10;i++){ people[i] = i+1; } //報數標誌 int flag = 0; //退出人數 int quitpeople = 0;//最初所有人都在圈裡,所以0人退出 int i = 0; while(quitpeople < 9){ //退出人數小於9迴圈結束 if(people[i] != 0){ //該編號的人還在圈中 flag++; } if(flag == 3){ flag = 0; people[i] = 0; quitpeople++; } i++; if(i == 10){ i = 0; } } for(int j = 0;j<10; j++){ if(people[j] != 0){ System.out.println(j+1); } } } }