選擇不同的資料結構,對於解決問題使用的演算法也會存在很大的不同,舉例分別使用組數和佇列來解決約瑟夫環問題。
/**
* 陣列解決約瑟夫環問題
* @param personnumber 人數
* @param number 數的數
*/public static void count(int personnumber,int number)
//2.演算法
int index = 0;//從0開始
int dunnumbers = 0;//記錄蹲下人數的數
int duns = 0;//記錄蹲下人的個數
while (duns !=personnumber ) else else }}
}
/**
* 佇列解決約瑟夫環問題
* @param personnumber 人數
* @param number 數的數
*/public static void countqueue(int personnumber,int number)
//2.演算法
int counts = 0;//計數器
while (!persons.isempty()) else
}}
兩種方法求解 約瑟夫環
題目描述 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為0的人開始報數,數到2的那個人出列 他的下乙個人又從0開始報數,數到2的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。解法一 基於陣列實現 public void solution int totalnum,...
兩種方法解決約瑟夫問題
第一種 構建迴圈鍊錶,然後不斷遍歷鍊錶直到剩下最後乙個元素。include include include include include include using namespace std typedef struct list list,link int main p next head n...
約瑟夫環的兩種解法
n個人想玩殘酷的死亡遊戲,遊戲規則如下 n個人進行編號,分別從1到n,排成乙個圈,順時針從1開始數到m,數到m的人被殺,剩下的人繼續遊戲,活到最後的乙個人是勝利者。請輸出最後乙個人的編號。input 輸入n和m值。m 1。output 輸出勝利者的編號。sample input 5 3sample ...