約瑟夫環(棧和佇列)

2021-08-20 00:05:56 字數 522 閱讀 8857

題目:n個數字(1,2,3…,n)形成乙個圓圈,從數字1開始,每次從這個圓圈中刪除第m個數字(第乙個為當前數字本身,第二個為當前數字的下乙個數字)。

當乙個數字刪除後,從被刪除數字的下乙個繼續刪除第m個數字。

求出在這個圓圈中剩下的最後乙個數字。

input

輸入:n=9

m=5output

the last one is 8

sample input

9 5
sample output

8
#include #include#includeusing namespace std;

#include dequedq;

int main()

dq.pop_front();

}a=dq.front();

printf("%d\n",a);

return 0;

}

約瑟夫環(棧和佇列)

題目 n個數字 1,2,3 n 形成乙個圓圈,從數字1開始,每次從這個圓圈中刪除第m個數字 第乙個為當前數字本身,第二個為當前數字的下乙個數字 當乙個數字刪除後,從被刪除數字的下乙個繼續刪除第m個數字。求出在這個圓圈中剩下的最後乙個數字。input 輸入 n 9 m 5output the last...

約瑟夫環 佇列實現

約瑟夫環這個經典的資料結構鍊錶問題,想必大家都有所涉及。我們怎麼用佇列去實現這個問題呢,首先我們要將所有的人進行入隊操作,因為編號是1 n,那麼我們使用乙個迴圈壓入就行。for int i 1 i n i 然後我們會發現只要留下最後乙個人即不再報數了,所以我們可以判斷當佇列的長度大於1時便讓佇列一直...

CSP 201712 2 遊戲(約瑟夫環 佇列)

有n個小朋友圍成一圈玩遊戲,小朋友從1至n編號,2號小朋友坐在1號小朋友的順時針方向,3號小朋友坐在2號小朋友的順時針方向,1號小朋友坐在n號小朋友的順時針方向。遊戲開始,從1號小朋友開始順時針報數,接下來每個小朋友的報數是上乙個小朋友報的數加1。若乙個小朋友報的數為k的倍數或其末位數 即數的個位 ...