《小程式》關於約瑟夫環猴王的問題

2021-10-05 12:24:05 字數 899 閱讀 3618

// 練習.cpp : 定義控制台應用程式的入口點。

//約瑟夫環問題,其實類似的題很多解法不盡相同。

//說有n只猴子,圍成乙個圈圈,從第一只猴子開始報數,由1-m,第m個人淘汰,也可以說殺掉,

//然後從第m+1個開始重頭查數,到第n只猴子後又會從第乙個開始查,直至剩下最後乙個猴子,

//我們尊稱為「活著的猴王」。

#include

"stdafx.h"

#include

using

namespace std;

intmonkeyking

(int total,

int cycle)

//定義乙個函式,輸入total為猴子總數,cycle為報的數,

//最後返回剩下猴子的位置,即陣列的下標

said =

(said == cycle ?

1: said +1)

;//活的猴子才會報數,從1到cycle迴圈

cout << endl;

} position =

(position>total -1?

0: position +1)

;//猴子的順序控制環,不管猴子死活,下乙個猴子下標,從0開始到達total-1再從頭來

}//就剩乙個猴子了,則他就是唯一乙個活著的王,此時檢視monkey_s陣列中猴子狀態

for(position =

0; monkey_s[position]

==false

; position++);

return position+1;

//返回活著的猴子下標,實際猴子的編號為position+1

}int

main()

需找新的美猴王 約瑟夫環 猴王問題

曰 初時,天地混沌未開,後盤古生而開之,三皇五帝治世,世界遂分四大部洲。東洲有山,曰花果山,天生一石猴,石破天驚,王於群猴。求藝,實菩提名之曰 悟空 後悟空大鬧天宮,為佛祖所困,五百載,為觀音點化,乃保唐曾取經,歷八十一難而成正果,封鬥戰勝佛,自此聞達三界,而昔日 美猴王 之名亦漸成經久之傳說 話說...

關於約瑟夫環問題的理解

有序列 0,1,2,3.n 1 可以將0 n 1的序列值理解為任意陣列下標 每次刪除第m個,注意該序列首尾相連,即n 1的下乙個為0,問最後剩下的數字是多少?此問題被稱為約瑟夫環問題,可以用列舉找規律解決,但也可以使用動態規劃來思考 1 記1 n 1序列最後剩下的數字為 f n,m 其中n表示有n個...

約瑟夫問題(關於小猴)

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