約瑟夫問題

2021-08-14 11:35:36 字數 1463 閱讀 1261

成績

10開啟時間

2023年09月27日 星期三 15:10

折扣0.8

折扣時間

2023年10月20日 星期五 15:10

允許遲交

否關閉時間

2023年01月8日 星期一 23:55

約瑟夫問題

成績10分折扣0.8 

(本題要求用迴圈鍊錶實現)

約瑟夫問題是乙個經典的問題。已知n個人(不妨分別以編號1,2,3,…,n 代表)圍坐在一張圓桌周圍,從編號為k 的人開始,從1開始順時針報數1, 2, 3, ...,順時針數到m 的那個人,出列並輸出。然後從出列的下乙個人開始,從1開始繼續順時針報數,數到m的那個人,出列並輸出,…依此重複下去,直到圓桌周圍的人全部出列。

輸入:n,k,m

輸出:按照出列的順序依次輸出出列人的編號,編號中間相隔乙個空格,每10個編號為一行。

非法輸入的對應輸出如下

a)輸入::n、

k、m任乙個小於

1輸出:

n,m,k must bigger than 0.

b)輸入:k>n

輸出:k should not bigger than n.

例輸入9,3,2

輸出4 6 8 1 3 7 2 9 5

測試輸入

期待的輸出

時間限制

記憶體限制

額外程序

測試用例 1

以文字方式顯示

9,3,2↵

以文字方式顯示

4 6 8 1 3 7 2 9 5↵

1秒64m

0測試用例 2

以文字方式顯示

10,12,3↵

以文字方式顯示

k should not bigger than n.↵

1秒64m0

#include#includeint n, k, m; 

typedef struct node

*ptrnode,node;

ptrnode creatlist()

else

r = s;

} r->next = head;

return head; }

int main()

else if (k>n)

else if (m == 1)

} else

p = p->next;

} k++;

printf("%d\n", p->data);*/

while (count < n)

else

printf("%d ", pp->data);

p->next = pp->next;

free(pp);

p = p->next;

} }

return 0;

}

約瑟夫問題 約瑟夫環

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

約瑟夫問題 約瑟夫環

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

約瑟夫問題

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