約瑟夫環問題的C語言實現

2021-10-10 12:56:42 字數 512 閱讀 1489

約瑟夫環問題是迴圈中的乙個經典問題,它有多個版本,我們這次選擇最常見的,即被點到出局不再計入迴圈型。

n個人圍成一圈,編號從1-n,第乙個人從1數起,數到7的那個人就被淘汰出局,接下來的人又從1數起,數到7再次被淘汰(如果人數不滿7個,則迴圈著數)……最後剩下的乙個人就是贏家(主函式已經給出)。

#include

intjos

(int n)

;int

main()

return0;

}

我們需要判斷約瑟夫環中的起點問題,有些題目會在淘汰一人時從最開始或他旁邊的那個人開始重新計數,而在這個題目中我們只需接著開始就可以了。

下面是我的ac**:

int

jos(

int n)

return p +1;

}

因為不用重新開始,所以**比較簡單,值得注意的是在這類題目中有時結束條件是只剩三個人或兩個人,一定要注意分清。

C語言 實現約瑟夫環

鏈式解法 include include typedef struct sqlist sqlist 建立解約瑟夫環需要的鍊錶,該鍊錶不帶頭節點 sqlist creatlist int length p next null 普通鍊錶轉不帶頭結點的迴圈鍊錶,就是將頭指標下移到第乙個節點位置 原來的頭結...

C語言實現約瑟夫環

直接上 define crt secure no warnings include includetypedef struct listnode listnode void create listnode firstnode,int m 建立單向迴圈鍊錶 int i listnode pre fir...

C語言實現約瑟夫環

一共有n個人,圍成一圈,從一開始報數,數到m的人出局,然後重新開始報數。算出出局的人的順序 如果最後只能剩下乙個人,請問是幾號?include includetypedef struct node linklist,node linklist init ring int num return hea...