1823. 找出游戏的获胜者

class Solution
{
public:
    int findTheWinner(int n, int k)
    {
        int ans = 0;
        for (int i = 2; i <= n; ++i)
        {
            ans = (ans + k) % i;
        }
        return ans + 1;
    }
};

每次报数到第 k 个人出圈后,剩下的人的编号会向前移动 1 个位置,而因为是循环的,所以要对人数取模。
这是数学法。

posted @ 2023-09-16 09:03  千心  阅读(12)  评论(0编辑  收藏  举报