問題描述
約瑟夫問題:有n只猴子,按順時針方向圍成一圈選大王(編號從1到n),從第1號開始報數,一直數到m,數到m的猴子退出圈外,剩下的猴子再接著從1開始報數。就這樣,直到圈內只剩下乙隻猴子時,這個猴子就是猴王,程式設計求輸入n,m後,輸出最後猴王的編號。
輸入資料
每行是用空格分開的兩個整數,第乙個是 n, 第二個是 m ( 0 < m, n < 300)。最後一行是:0 0
輸出要求
對於每行輸入資料(最後一行除外),輸出資料也是一行,即最後猴王的編號
輸入樣例:
6 212 4
8 30 0
輸出樣例:
#include"iostream
"using
namespace
std;
int getking(int n,int
m);int
main()
cout
}return0;
}/*600000 2
12 4
8 30 0
*/int getking(int n,int
m)
int j = 0
;
for(i = 0;i < n - 1;i++)}}
arr[j%n] = 0
; }
for(i = 0;i < n;i++)
}delete
arr;
return0;
}
迴圈鍊錶問題
首先是約瑟夫問題 來自魚c工作室 typedef struct node node node create int n s next head next free head return s next int main printf d n p data return 0 高階版的問題是這樣的 編號...
迴圈鍊錶 約瑟夫問題
設編號分別為 1,2,n的n個人圍坐一圈。約定序號為k 1 k n 的人從1開始計數,數到m的那個人出列,他的下一位又從1開始計數,數到m的那個人又出列,依次類推,直到所有人出列為止。演算法思路 1 先建立乙個有n個結點的單迴圈鍊錶,編號從1到n,代表n個人。2 找到第k個結點,即第乙個開始報數的人...
(迴圈鍊錶)約瑟夫問題
time limit 1000 ms memory limit 65536 kib submit statistic n個人想玩殘酷的死亡遊戲,遊戲規則如下 n個人進行編號,分別從1到n,排成乙個圈,順時針從1開始數到m,數到m的人被殺,剩下的人繼續遊戲,活到最後的乙個人是勝利者。請輸出最後乙個人的...