卑鄙約瑟夫


Submit solution

分數: 100 (partial)
時間限制: 1.0s
記憶體限制: 1G

作者:
題目類型
允許的語言
Assembly, Brainfuck, C, C++, Python

傳說著名猶太歷史、數學家約瑟夫 (Titus Flavius Josephus) 和他的 40 個同袍被羅馬軍隊包圍在洞中。他們討論要自殺或被俘,最終決定自殺。然而私下約瑟夫與某個傢伙並不贊成,於是約瑟夫提出自殺方式:41 個人給他一個圓啊給他一個圓,由第零個人開始報數,每報數到三的人就必須自殺,然後由下一個重新報數。約瑟夫與不想自殺的那個人分別排在第 30 號與第 15 號位置,於是逃過了這場死亡遊戲。

卑鄙約瑟夫~~ 現在給你 \(n, k\) 代表有 \(n\) 個人圍成一圈,每 \(k\) 個人要自殺,請問最終倖存者的編號是多少??

編號由 0 開始!!

輸入格式

兩個整數 \(n: 1 < n < 100000, k: 1 \leq k < 1000\) 代表有 \(n\) 個人圍成一圈,每 \(k\) 個人要自殺。

輸出格式

一個整數,為倖存者之編號。

範例輸入

41 3

範例輸出

30

提示

本題是個入門的約瑟夫問題,\(n\) 並不大,單純用佇列模擬即可。至於遞迴公式解法,敬請期待!!


評論

目前沒有評論。