猴子選大王

2021-07-05 14:38:25 字數 837 閱讀 2254

問題描述:一群猴子,編號是1,2,3 …m,這群猴子(m個)按

照1-m的順序圍坐一圈。從第1只開始數,每數到第n個,該猴子就

要離開此圈,這樣依次下來,直到圈中只剩下最後乙隻猴子,則該

猴子為大王。輸入m和n,輸出為大王的猴子是幾號。

輸入描述:m個猴子和要出去的位數n。

程式輸出:king是誰。

#include using namespace std;  

struct monkey

;

int main()

else

p2->next=head; //最後乙隻再指向第一只,成了乙個圓圈

//下面要開始數了

p1=head;

for(i=1; inext; //圍成圈的,可能再開始從第一隻數,如果還未被淘汰的話

//找到了,

p2=p1->next; //p2將被刪除

//cout

p1=p2->next; //下一輪數數的新起點

delete p2; //將不在鍊錶中的結點放棄掉

約瑟夫問題的揭發。

在學習c++的時候曾經接觸過這種問題,記得當時不太會,現在細細品味還是慢慢的懂了

猴子選大王

方法一 include int main 初始化猴子全沒出局 值為0 int count 0 排除的猴子數量 int key 0 剩下的資料索引,即最後要得到的是陣列中第幾隻猴子是大王 int i 0,index 0 i代表計數器1 7,index代表陣列下標 while count 14 當猴子數...

猴子選大王

問題 檔名稱 專案5.cpp 作 者 秦緒龍 完成日期 2016年9月23日 版 本 號 v1.0 問題描述 一群猴子,編號是1,2,3 m,這群猴子 m個 按照1 m的順序圍坐一圈。從第1只開始數,每數到第n個,該猴子就要離開此圈,這樣依次下來,直到 圈中只剩下最後乙隻猴子,則該猴子為大王。輸入m...

猴子選大王

題目 思路 對於鍊錶題,我們要先定義它的結構體,比如像這道題,既然要排號,我們將該定義乙個id,儲存編號資訊。提示中要求用環形鍊錶,我們就要想何為環形鍊錶,對於單鏈表而言,無非就是讓最後乙個節點next指向頭節點。include include includetypedef struct node ...