迴圈鍊錶1(猴王問題)

2021-10-03 14:36:17 字數 766 閱讀 3127

問題描述

約瑟夫問題:有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的人被殺,剩下的人繼續遊戲,活到最後的乙個人是勝利者。請輸出最後乙個人的...