报数
题目
一百个人围成一圈,每个人有一个编码编号从一开始到一百。
他们从一开始依次报数,报道M
的人自动退出圈圈,
然后下一个人接着从1
开始报数一直到剩余人数小于M
。
请问最后剩余人在原先的编码为多少?
输入
输入一个整数参数M
输出
如果输入参数M
小于等于1
或者大于等于100
,输出ERROR!
;
否则按原先的编号从小到大的顺序,以英文逗号分割输出编号字符串
示例一
输入
3
输出
58,91
示例二
输入
4
输出
34,45,97
编码思路
- 判断 m 是否在
[2, 99]
范围内,若不是则输出 ERROR 并结束 - 生成编号列表,从 1 到 100
- 按照约瑟夫环的规则进行编号列表的移除
核心知识点
代码简单,直接阅读即可。
Python 代码实现
from typing import List
def solve_method(m: int)