n個人圍成一圈,順序排號,從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來的多少號?
public class DiuShouJuan { public static void main(String[] args) { System.out.println(result(4)); } public static int result(int n){ boolean[] arr = new boolean[n]; for (int i = 0; i < arr.length; i++) { arr[i] = true; } int leftCount = n;//報數的人數 int countNum = 0;//要報的數 int index = 0;//下標 while(leftCount>1){ if(arr[index]==true){ countNum++; if(countNum==3){ countNum=0; arr[index]=false; leftCount--; } } index++; if(index==n) index=0; } int result=0; for (int i = 0; i < n; i++) { if(arr[i]==true) result = i+1; } return result; } }