C語言 約瑟夫問題迴圈鍊錶實現

2021-08-28 12:20:38 字數 663 閱讀 9774

約瑟夫問題(10分)

題目內容:有n只猴子,按順時針方向圍成一圈選大王(編號從1到n),從第1號開始報數,一直數到m,數到m的猴子退出圈外,剩下的猴子再接著從1開始報數。就這樣,直到圈內只剩下乙隻猴子時,這個猴子就是猴王,程式設計求輸入n,m後,輸出最後猴王的編號。

輸入格式:輸入包含兩個整數,第乙個是n,第二個是m (0 < m,n <=300)。

輸出格式:輸出包含一行,即最後猴王的編號。

輸入樣例:18 2

輸出樣例:5

時間限制:500ms記憶體限制:32000kb

#include#includestruct node

;typedef struct node *list;

int main()

q->next = l;

p = l;

while (p->next != p)

temp = p->next;

p->next = temp->next;

free(temp);

} printf("%d\n", p->data-1);

}

約瑟夫問題(C語言 迴圈鍊錶)

實現 如下 include includetypedef struct nodelnode,linklist void josephus int n,int m,int k p data i 編號 if list null list p else x next p 將x和p節點串起來 x p x指標...

迴圈鍊錶實現約瑟夫問題

高階約瑟夫問題 總結 初學資料結構的迴圈鍊錶,正好利用迴圈鍊錶可以很容易的解決上述問題。include include include typedef int elemtype define len sizeof node define n 41 總人數 41 define m 3 密碼固定為3 t...

迴圈鍊錶實現約瑟夫環(c語言)

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