題目: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的倍數或其末位數 即數的個位 ...