用鍊錶實現約瑟夫問題(c C )

2021-06-26 22:07:13 字數 474 閱讀 3453

約瑟夫問題:n個小孩圍成一圈做遊戲,給定乙個數m,先從第s個小孩開始順時針計數,每數到m,該小孩出列,然後從下乙個小孩開始,數到m時

該小孩出列,如此反覆,直到最後乙個小孩,用鍊錶解決約瑟夫問題

#includeusing namespace std;

#includestruct lnode

;int main()

last->next=first;//構成環形鍊錶

for(i=1;inext;

last=last->next;

}k=n;

while(k>1)

last->next=first->next;//第m個孩子出列

coutdelete first;

first=last->next;

k--;

}coutdelete first;

return 0;

}

用C鍊錶實現約瑟夫環問題

問題 設有n個人圍成乙個圓圈,現從第s個人開始報數,數到第m的人出列,然後從出列的下乙個人重新開始報數,數到第m的人再次出列,如此反覆,直到所有的人全部出列為止。對於任意給定的n s m,求按出列次序得到的n個人員的序列。例 就是問題簡單示例,裡面是每次要迴圈的資料,後面的s是出列的人 思路 先建立...

用C鍊錶實現約瑟夫環問題

問題 設有n個人圍成乙個圓圈,現從第s個人開始報數,數到第m的人出列,然後從出列的下乙個人重新開始報數,數到第m的人再次出列,如此反覆,直到所有的人全部出列為止。對於任意給定的n s m,求按出列次序得到的n個人員的序列。就是問題簡單示例,裡面是每次要迴圈的資料,後面的s是出列的人 思路 先建立乙個...

Problem E 用鍊錶實現約瑟夫環

你聽說過約瑟夫問題嗎?問題大致如下 首先n個人圍成乙個圈,標記為1到n號。接著,從1號開始報數 從1開始 然後2號報數,然後3號。當有人報到到m時,這個人就要踢出比賽,然後從被踢出的人的下乙個人開始,重新報數 從1開始 這樣經過n 1次後,就只剩下了乙個人,問最後剩下的那個人是幾號?第1行為t,表示...