約瑟夫環問題的C版本答案

2021-04-02 19:54:41 字數 680 閱讀 9846

編序為1,2,...n的n個人按順時針方向圍坐一圈,每人持有乙個密碼(正整數),一開始人選乙個整數作為報數上限m,從第乙個人開始按順時針方向從自1開始順序報數,報到m時停止報數.報m的人出列,將他的密碼作為新的m值,從他的順時針方向上的下乙個人開始從1報數,如此下去,知道所有人全部出列為止,設計乙個程式求出出列順序.

採用單迴圈鍊錶模擬此程式,按照出列的順序印出各人的編號

測試資料:m的初值為20;n=7,7個人的密碼依次為3,1,7,2,4,8,4.首先m的值為6(正確的出列順序為6,1,4,7,2,3,5)

c++版的答案:

#include

#include

typedef struct lnode

lnode, *linklist;

void main()

p->next=head;

pt=head;

//p=head;//建立n個節點;

cout<<"please enter the password:";

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

pt=p;//pt設為最後乙個節點;

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

p=pt->next;

m=p->pwd;

cout

pt->next=p->next;

free(p);}}

約瑟夫問題 約瑟夫環

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

約瑟夫問題 約瑟夫環

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

約瑟夫環問題(C語言)

n個人站成一圈,每個人有不同的編號i,從編號為1的人開始順時針防線迴圈報數,數到m的人出列。然後從出列者的下乙個人重新報數,如此重複,直到全部出列。輸出n個人的出列順序。元素位置標記為0,1,2,n 1。設t為輸出元素位置,初始值0,則輸出元素位置為t t m 1 n t位置後的元素後移,列表元素個...