約瑟夫問題(c 實現)

2022-01-11 19:40:17 字數 763 閱讀 9137

描述:約瑟夫問題:有n只猴子,按順時針方向圍成一圈選大王(編號從1到n),從第1號開始報數,一直數到m,數到m的猴子退出圈外,剩下的猴子再接著從1 開始報數。就這樣,直到圈內只剩下乙隻猴子時,這個猴子就是猴王,程式設計求輸入n,m後,輸出最後猴王的編號。

輸入:每行是用空格分開的兩個整數,第乙個是 n, 第二個是 m ( 0 < m, n < 300)。最後一行是: 0 0.

輸出:對於每行輸入資料(最後一行除外),輸出資料也是一行,即最後猴王的編號.

input:

6 212 4

8 30 0

output:

分析:猴子可以用乙個陣列來表示,陣列的值為猴子的編號,當某只猴子出局即把該編號改為0

說明該猴子出局,當最後只剩下乙個不為0的值時該值即為猴王編號。

1 #include2

using

namespace

std;34

intmain()527

}28}29

for (int i = 0; i < n; i++)

3034

}35 system("

pause");

36return0;

37 }

1 #include2

using

namespace

std;34

int joseph (int n,intm)5

11int

main()

12

約瑟夫問題 C語言實現

約瑟夫環 約瑟夫問題 是乙個數學的應用問題 已知n個人 以編號1,2,3 n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。通常解決這類問題時我們把編號從0 n 1,最後 1 結果...

python實現約瑟夫 約瑟夫問題python實現

python語言之如何實現約瑟夫環問題 def josephus n,m if type n 60個人從1開始編號每人拿乙個號碼牌排成圈,從 1開始報數,第一次報數 totalnum 猴子總數 startnum 開始序號 intervalnum 間隔數def kingelect totalnum,s...

java實現約瑟夫問題

原始問題描述 據說著名猶太歷史學家josephus有過以下的故事 在羅馬人占領喬塔帕特後,39個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了乙個自殺方式,41個人排成乙個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下乙個重新報...