約瑟夫問題

2022-04-06 11:57:04 字數 1177 閱讀 9848

time limit: 1000ms memory limit: 65536k

n個人想玩殘酷的死亡遊戲,遊戲規則如下: 

n個人進行編號,分別從1到n,排成乙個圈,順時針從1開始數到m,數到m的人被殺,剩下的人繼續遊戲,活到最後的乙個人是勝利者。

請輸出最後乙個人的編號。

輸入n和m值。

輸出勝利者的編號。

5 3

4
第一輪:3被殺第二輪:1被殺第三輪:5被殺第四輪:2被殺

view code

#include int isend(int a,int n);//

測試就剩乙個入?如果是。就返回序號。否則返回0

intmain()

i=0;

while( (t=isend(a,n)) == 0)//

當剩下人數超過1個時

}printf(

"%d\n

",a[t]);

return0;

}int isend(int a,int

n)

if(m > 1

)

return0;

}return

t;}

//鍊錶做法

view code

#include #include 

#include

#include

typedef

struct

nodenode, *link;

link create(

intn)

p->next =head;

return

head;

}

void

print(link head)

printf(

"%d\n

", p->data);

}

intmain()

do

else

}while(p->next !=p);

printf(

"%d\n

", p->data);

return

0;

}

約瑟夫問題 約瑟夫環

約瑟夫 問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死...

約瑟夫問題 約瑟夫環

約瑟夫問題 有時也稱為約瑟夫斯置換,是乙個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。又稱 丟手絹問題 據說著名猶太歷史學家 josephus有過以下的故事 在羅馬人占領喬塔帕特後,39 個猶太人與josephus及他的朋友躲到乙個洞中,39個猶太人決定寧願死也...

約瑟夫問題

這是17世紀的法國數學家加斯帕在 數目的遊戲問題 中講的乙個故事 15個教徒和15 個非教徒在深海上遇險,必須將一半的人投入海中,其餘的人才能倖免於難,於是想了乙個辦法 30個人圍成一圓圈,從第乙個人開始依次報數,每數到第九個人就將他扔入大海,如此迴圈進行直到僅餘15個人為止。問怎樣排法,才能使每次...