約瑟夫(josephus)環(huán)是這樣的:假設有n個小孩坐成一個環(huán),假如從第一個小孩開始數,如果數到m個小孩,則該小該離開,問最后留下的小孩是第幾個小孩?例如:總共有6個小孩,圍成一圈,從第一個小孩開始,每次數2個小孩,則游戲情況如下:
小孩序號:1,2,3,4,5,6
離開小孩序號:2,4,6,3,1
最后獲勝小孩序號:5
這樣的問題,我可以先考慮輸入的內容有哪些?輸出內容有哪些?
要求用戶輸入的內容有:
1、是小孩的個數,也就是n的值;
2、是離開小孩的間隔是多少?也就是m的值.
3、所有小孩的序號要求存在數組或者鏈表中,所以需要定義一個指針,這里我們用數組來存放小孩的序號.
而要求輸出的內容是:
1、離開小孩的序號;
2、最后留下小孩的序號;
所以,根據上面分析輸入輸出參數,我們考慮離開小孩的序號可以直接輸出,這樣可以使函數的復雜性.那么函數定義如下:
//輸入參數:
//Childs為指向一個整形指針,指向保存小孩數組的首地址;
//n為小孩的個數;
//m為數小孩的個數;
int Josephus(int *Child,int n,int m)
{
int i=-1,j=0,k=1;
//開始數小孩,只到留下一個小孩
while(1)
{
//數m個小孩
for(j=0;j
How to solve 約瑟夫問題 by C++ ?
How to solve 約瑟夫問題 by C++ ?
約瑟夫問題:設編號為1,2,…,n的n(n>0)個人按順時針方向圍坐一圈,每人持有一正整數密碼.開始時任選一個正整數作為報數上限值m,從第一個人開始順時針方向自1起順序報數,報到m時停止報數,報m的人出列,將他的密碼作為新的m值,從他在順時針方向上的下一個人起重新從1報數.如此下去,直到所有人全部出列為止.令n最大值取30.要求設計一個程序模擬此過程,求出出列編號序列(采用循環(huán)單鏈表結構).
約瑟夫問題:設編號為1,2,…,n的n(n>0)個人按順時針方向圍坐一圈,每人持有一正整數密碼.開始時任選一個正整數作為報數上限值m,從第一個人開始順時針方向自1起順序報數,報到m時停止報數,報m的人出列,將他的密碼作為新的m值,從他在順時針方向上的下一個人起重新從1報數.如此下去,直到所有人全部出列為止.令n最大值取30.要求設計一個程序模擬此過程,求出出列編號序列(采用循環(huán)單鏈表結構).
其他人氣:419 ℃時間:2020-06-08 16:16:14
優(yōu)質解答
我來回答
類似推薦
- How to solve it?
- 作文how to solve traffic jam problem?
- how to solve the problem of heavy traffic
- how to solve 16^X+4^X-20=0
- 寫一篇英語作文《How to solve your problems》
- 英語翻譯
- 將粉筆頭輕放在以2m/s運動的傳送帶上,傳送帶留下一條長度為4米的劃線.請問,為什么劃線的長度等于傳送帶的位移減去物體的位移?請詳解,
- <<湯姆索亞歷險記>>以什么為線索,鞭撻了什么?
- 桂花雨主要內容?30字以上
- 誰能幫我想個詞來形容這個人
- (找等量關系列方程)
- 等比數列{an}中,a1+a2=8,a3-a1=16,則a3等于( ?。?A.20 B.18 C.10 D.8
猜你喜歡
- 1自天然藥物提取液中識別生物堿是否存在的主要反應及其試劑有哪些
- 2已知函數f ( x )等于(cos x)的四次方減去2sin xcos x減去(sin x)的四次方.1)求f ( x ) 的最小正周期;...
- 3在9 8 7 6 5 4 3 2 1=20添上加減乘除使等式成立
- 4用“攛掇”“絮叨”“怠慢”造句
- 5△ABC中,B>90° a=2x-5 b=x+1 c=4 求 x的取值范圍.
- 6Experience more than sufficiently teaches that men govern nothing with more difficult than their tongues.問govern sth wit
- 7氧化銅與稀硫酸反應的化學方程式
- 8為什么高中化學先學的離子反應再學氧化還原反應 離子反應里面有好多寫的時候要用到氧化還原的知識的啊
- 9已知:關于x的方程kx^2-(4k+1)x+3k+3=0
- 10語文作文:如何審題?如何理解話題?
- 11先生的讀音,生是讀一聲還是輕聲
- 12額定電壓220V、容量100L、電阻24.2Ω的電熱水器,它的電功率是多少?