小朋友报数问题,Python
时间: 2023-11-19 15:06:18 浏览: 50
这是一个经典的小游戏,可以用Python来实现。
游戏规则是:有n个小朋友围成一圈,从第一个小朋友开始报数,报到m的小朋友出圈,然后从下一个小朋友重新开始报数,直到剩下最后一个小朋友为止。
我们可以用一个列表来表示这n个小朋友,每个小朋友的编号就是列表中的索引。每次报数时,我们可以用一个计数器来记录当前报数的小朋友,当计数器等于m时,就将该小朋友从列表中删除,然后将计数器重置为1,继续从下一个小朋友开始报数,直到列表中只剩下一个小朋友为止。
以下是一个实现该游戏的Python代码:
```python
n = int(input("请输入小朋友的个数:"))
m = int(input("请输入要报的数:"))
# 初始化小朋友列表
children = list(range(1, n+1))
# 记录当前报数的小朋友和计数器
i = 0
count = 1
# 开始游戏
while len(children) > 1:
if count == m:
del children[i]
count = 1
else:
i += 1
count += 1
if i == len(children):
i = 0
# 输出最后剩下的小朋友
print("最后剩下的小朋友是:", children[0])
```
运行代码,输入小朋友的个数和报数的数,即可开始游戏。例如,输入n=5,m=3,游戏的过程如下:
```
请输入小朋友的个数:5
请输入要报的数:3
最后剩下的小朋友是: 4
```
可以看到,最后剩下的小朋友是编号为4的小朋友。