題目連結:
解法:
function josephusSurvivor(n, k) {
if (n === 1) {
return 1;
} else {
return (josephusSurvivor(n - 1, k) + k - 1) % n + 1;
}
}
筆記:
這題有點複雜難XD
參考解答發現一部分的人使用遞迴(Recursive)的方式
遞迴過程函式會呼叫josephusSurvivor(n - 1, k)
這相當於在淘汰一人後的新圓圈中最後的位置。
將原本的第k位置變成了第1個位置k-1
對n取餘數確保位置在合理範圍(0~n-1)
最後加上1從位置變成數字
![[Note] Node.js: module](https://static.coderbridge.com/images/covers/default-post-cover-1.jpg)

![[Py 百日馬 Day 5] for 迴圈 (for loop)](https://static.coderbridge.com/img/x94lexie/3818954189684a429efbf4111e53a7b9.jpg)