1. 程式人生 > >算法題之丟手絹問題

算法題之丟手絹問題

log 留下 bool 下標 oid res lean als --

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; } }

算法題之丟手絹問題