約瑟夫問題(關於小猴)

2021-07-15 18:54:25 字數 907 閱讀 6799

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

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

sample input 6 2 

12 4

8 30 0 

sample output 5 17 

約瑟夫問題,之前一直是用陣列做的,雖然沒什麼演算法,但是實際寫出來還是有點難度的,要把每乙個步驟都寫出來。

#include#include #include #include#define max_nun 300

int aloop[max_nun+10];

main()

{ int n, m, i;

while(1)

{scanf("%d%d",&n,&m);

if(n == 0)

break;

for(i=0; i#include #include using namespace std;

int main()

{ listhk;

list::iterator l,s;

int m,n,k,j,i;

while(cin>>m>>n&&(m!=0&&n!=0))

{ hk.clear();

for(i=1;i<=m;i++)

hk.push_back(i);

k=0;

l=hk.begin();

while(k

猴群選猴王(約瑟夫問題)詳解

約瑟夫問題的題目和描述就不說了,題目鏈結有很多,我直接瞎選了乙個,自己看看就可以 點這裡,原版題目,自己試試看 洛谷的題 首先說思路,每一輪都會有1個人退出,在這裡我們會關心誰退出了,誰留下來。第一輪 第m n個人退出 第二輪 第2m n個人退出 第n 1輪 第 nm m n個人退出 此時還剩下乙個...

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

練習.cpp 定義控制台應用程式的入口點。約瑟夫環問題,其實類似的題很多解法不盡相同。說有n只猴子,圍成乙個圈圈,從第一只猴子開始報數,由1 m,第m個人淘汰,也可以說殺掉,然後從第m 1個開始重頭查數,到第n只猴子後又會從第乙個開始查,直至剩下最後乙個猴子,我們尊稱為 活著的猴王 include ...

問題 B 猴猴吃香蕉

題目描述 猴猴最愛吃香蕉了。每天猴猴出門都會摘很多很多的香蕉,每個香蕉都有乙個甜度,猴猴不一定要把所有的香蕉都吃掉,猴猴每天都有乙個心情值k,猴猴希望當天吃的香蕉滿足這麼乙個條件,這些香蕉的甜度乘積恰好等於k,但是猴猴並不知道有多少種方法,於是猴猴把這個問題交給你。輸入第一行乙個數d,表示有d天。接...