#126. 约瑟夫环

约瑟夫环

说明

约瑟夫问题是一个经典的数学问题:

有 n 个人围成一圈,从第 1 个人开始报数,报到 m 的人出列,然后从出列的下一个人继续从 1 开始报数……如此反复,直到所有人出列为止。

现在给定 n 和 m,请你按出列顺序输出每个人的编号(编号从 1 到 n),每行一个。

输入格式

一行,两个整数 n 和 m,用空格隔开。
  • n:总人数(1n1001 \le n \le 100
  • m:报数值(1m1001 \le m \le 100

输出格式

n 行,每行一个整数,按出列顺序依次输出编号。
5 3
3
1
5
2
4

提示

用列表模拟环形结构。维护一个当前位置 pos,每次计算:

  • pos = (pos + m - 1) % len(list) → 找到要出列的人
  • 弹出该位置的人并输出
  • 循环直到列表为空

注意 pos 不用 +1 是因为弹出后列表自动缩短,下一个人自然到了当前位置。