演算法訓練 篩選號碼 (約瑟夫環問題)

2021-07-27 22:31:26 字數 824 閱讀 6868

問題描述

有n個人圍成一圈,順序排號(編號為1到n)。從第1個人開始報數(從1到3報數),凡報到3的人退出圈子。從下乙個人開始繼續報數,直到剩下最後乙個人,遊戲結束。

問最後留下的是原來第幾號的那位。

舉個例子,8個人圍成一圈:

1 2 3 4 5 6 7 8

第1次報數之後,3退出,剩下:

1 2 4 5 6 7 8 (現在從4開始報數)

第2次報數之後,6退出,剩下:

1 2 4 5 7 8 (現在從7開始報數)

第3次報數之後,1退出,剩下:

2 4 5 7 8 (現在從2開始報數)

第4次報數之後,5退出,剩下:

2 4 7 8 (現在從7開始報數)

第5次報數之後,2退出,剩下:

4 7 8 (現在從4開始報數)

第6次報數之後,8退出,剩下:

4 7 (現在從4開始報數)

最後一次報數之後,4退出,剩下: 7.

所以,最後留下來的人編號是7。

輸入格式

乙個正整數n,(1輸出格式

乙個正整數,最後留下來的那個人的編號。

樣例輸入

8樣例輸出

7資料規模和約定

對於100%的資料,1

**:#include#includeusing namespace std;

int main()

i=0;

while (tuichu < n-1)//還剩乙個人退出迴圈

}} for (i=1; i<=n; i++)

{ if (a[i] != 0)

{ cout<

演算法訓練 篩選號碼

問題描述 有n個人圍成一圈,順序排號 編號為1到n 從第1個人開始報數 從1到3報數 凡報到3的人退出圈子。從下乙個人開始繼續報數,直到剩下最後乙個人,遊戲結束。問最後留下的是原來第幾號的那位。舉個例子,8個人圍成一圈 1 2 3 4 5 6 7 8 第1次報數之後,3退出,剩下 1 2 4 5 6...

試題 演算法訓練 篩選號碼 藍橋杯

題目描述 資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 有n個人圍成一圈,順序排號 編號為1到n 從第1個人開始報數 從1到3報數 凡報到3的人退出圈子。從下乙個人開始繼續報數,直到剩下最後乙個人,遊戲結束。問最後留下的是原來第幾號的那位。舉個例子,8個人圍成一圈 1 2 3 ...

藍橋杯 ALGO 75 演算法訓練 篩選號碼

演算法訓練 篩選號碼 時間限制 1.0s 記憶體限制 512.0mb 問題描述 有n個人圍成一圈,順序排號 編號為1到n 從第1個人開始報數 從1到3報數 凡報到3的人退出圈子。從下乙個人開始繼續報數,直到剩下最後乙個人,遊戲結束。問最後留下的是原來第幾號的那位。舉個例子,8個人圍成一圈 1 2 3...