約瑟夫問題公升級版

2021-06-27 18:08:12 字數 648 閱讀 5872

編號為1~n的n個人按順時針方向圍坐一圈,每人持有乙個密碼(正整數,可以自由輸入),開始人選乙個正整數作為報數上限值m,從第乙個人按順時針方向自1開始順序報數,報道m時停止報數。報m的人出列,將他的密碼作為新的m值,從他順時針方向上的下乙個人開始從1報數,如此下去,直至所有人全部出列為止。

#include#includestruct node

; typedef struct node node; //重定義struct node型別為node

node* creat(int n);

int main()

printf("%d->",p->next->data);

temp = p->next;

p->next = temp->next;

free(temp);

p = p->next;

scanf("%d",&m);

m %= n;

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

return 0;

} node* creat(int n)

s->next = head->next;

} free(head);

return s->next;

}

執行結果:

約瑟夫問題的公升級版

最近寫的乙個約瑟夫問題 建立迴圈單鏈表 p next pre 最後乙個節點指向第乙個結點,形成迴圈鍊錶 return pre void dele linklist l,int m temp p num 當這個人出去時,將他的值作為新密碼 printf 5d p num count s p 鍊錶的刪除...

約瑟夫環公升級版

題目 問題分析 和約瑟夫問題不同的是,公升級版多了乙個密碼,這個密碼可以從線性表匯入,也就是在建立結點時,有三個區域密碼域password 資料域位置position 指標域next。如下圖所示 實現 import ds01.動態陣列.arraylist 約瑟夫環公升級版 public class ...

賣票問題公升級版

1 package com.hw.third0225 23 public class windowticket implements runnable910 override 11public void run 20 2122 try catch interruptedexception e 28 ...