须知
题目描述
有n个人围成一圈,顺序排号为1-n。
从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
输入描述
输入人数n(n < 1000)
输出描述
输出最后留下的是原来第几号
用例
输入 2
输出 2
说明 报数序号为1的人最终报3,因此序号1的人退出圈子,最后剩下序号为2的那位
解题思路:
- 创建一个列表,用于存储每个人的编号。
- 初始化一个计数器,用于记录报数。
- 使用循环遍历列表,每次报数加1。
- 如果报数为3,则将该人从列表中移除,并将报数重置为1。
- 当列表中只剩下一个人时,输出该人的编号。
Python代码如下:
def last_remaining(n)

这篇博客介绍了华为OD机试中的一道报数问题,参与者按1到3报数,报3的人退出,直至最后只剩一人。博客提供了输入输出描述、样例及解题思路,重点讲解了使用Python解决此问题的代码实现。
订阅专栏 解锁全文
130

被折叠的 条评论
为什么被折叠?



