問題及**:
/*
*煙台大學計算機與控制工程學院
*作 者:楊甯
*完成日期:2023年10月3日
*問題描述:一群猴子,編號是1、2、3、、、m,這群猴子按照1-m的順序圍坐一圈。從第一只開始數,
每數到第n個,該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最後乙隻猴子,則該猴子為大王。
輸出m和n,輸出為大王的猴子是幾號。*/
#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; //將不在鍊錶中的結點放棄掉
}king=p1->num;
delete p1;
}cout執行結果:
假設有七隻猴子,疏導4的就出局,最後剩下2,即第二隻猴子為大王。
知識點及總結:
用乙個迴圈的單鏈表來表示這一群猴子。表示節點的結構體中有兩個成員:乙個儲存猴子的編碼,乙個為指向下乙個的指標,編號為m的結點,以次構成環形的鏈。當數到第n個時,該結點被刪除,繼續數,直到只有乙個結點,就是該結果。
學習心得:
在之前也遇到過類似的問題,但是沒有用過鍊錶這種方法,以後再遇到類似的問題,又多了一種解決方法。
第四周 專案5 猴子選大王
問題及 all right reserved.檔名稱 main.cpp 完成日期 2015年9月25日 版本號 v1.0 問題描述 一群猴子,編號是1,2,3 m,這群猴子 m個 按照1 m的順序圍坐一圈。從第1只開始數,每數到第n個,該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最後乙隻猴子,則...
第四周專案5 猴子選大王
01.04.檔名稱 專案5 猴子選大王.cpp 05.作 者 高露 06.完成日期 2015年10月5日 07.版 本 號 v1.0 08.09.問題描述 一群猴子,編號是1,2,3 m,這群猴子 m個 按照1 m的順序圍坐一圈。10.從第1只開始數,每數到第n個,該猴子就要離開此圈,這樣依次下來,...
第四周 專案5 猴子選大王
檔名稱 專案5 猴子選大王.cpp 作 者 呂云雙 完成日期 2015年10月1日 版 本 號 v1.0 問題描述 一群猴子,編號是1,2,3 m,這群猴子 m個 按照1 m的順序圍坐一圈。從第1只開始數,每數到第n個,該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最後乙隻猴子,則該猴子為大王。輸...