資料結構 C語言 約瑟夫問題

2021-08-03 07:41:19 字數 867 閱讀 2513

一、問題描述:約瑟夫問題

乙個旅行社要從n個旅客中選出一名旅客,為他提供免費的環球旅行服務。旅行社安排這些旅客圍成乙個圓圈,從帽子中取出一張紙條,用上面寫的正整數m作為報數值。遊戲進行時,從第s個人開始按順時針方向自1開始順序報數,報到m時停止報數,報m的人被淘汰出列,然後從他順時針方向上的下乙個人開始重新報數,如此下去,直到圓圈中只剩下乙個人,這個最後的倖存者就是遊戲的勝利者,將得到免費旅行的獎勵。其中資料結構採用單迴圈鍊錶。

二、任務要求

用單迴圈鍊錶解決約瑟夫問題。

三、測試資料

輸入說明,輸入的第一行表示總的旅客數,輸入的第二行表示報數值,輸入的第三行表示報數人的起始編號。

輸入樣例:

9 5

1 輸出說明,輸出這n個人的淘汰順序

輸出樣例:

5 1

7 4

3 6

9 2

8

#include

#include

typedef struct node linklist;

int count = 0;

int create(linklist *head, int n)

return0;}

int func(linklist *head, int startnum, int circdata)

while (count >= 1)

printf("%d\n", p->next->num);

p->next = p->next->next;

p = p->next;

count--;

}return0;}

int main()

資料結構 約瑟夫問題

約瑟夫問題 上課結束,大家聽說第一周沒有程式設計題目,立刻就被鄙視了,為了糾正這個錯誤,咱們本週就來做點簡單題目。本題要求用迴圈鍊錶實現 約瑟夫問題是乙個經典的問題。已知n個人 不妨分別以編號1,2,3,n 代表 圍坐在一張圓桌周圍,從編號為 k 的人開始,從1開始順時針報數1,2,3,順時針數到m...

資料結構 約瑟夫問題

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

資料結構 約瑟夫問題的C 實現

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