n 個人圍成一圈(編號1-n),數到3的出列,最後剩下的人的編號
阿新 • • 發佈:2019-01-09
問題:
n 個人圍成一圈(編號1-n),數到3的出列,然後又從頭開始數,一直迴圈到最後一個人,請問最後剩下的人的編號?
轉載請註明出處:http://blog.csdn.net/beiyeqingtengpublic int numberToExit(int total, int interval) { boolean[] arr = new boolean[total]; for(int i = 0; i < arr.length; i++) { arr[i] = true; } int left = arr.length; int count = 0; int index = 0; while (left > 1) { if(arr[index] == true) { count++; if(count == interval) { count = 0; arr[index] = false; left--; } } // we need to change the index if out of the range. index++; if(index == arr.length) { index = 0; } } for(int i = 0;i < arr.length; i++) { if(arr[i] == true) { return i+1; } } return -1; }