编写一个程序,完成循环出圈功能(n个人围成一圈,1、2、3报数,报到3的出圈,问最后留下的同学是几号)
时间: 2023-04-24 15:05:37 浏览: 76
python 有n个人围成一圈,顺序排号,问最后留下的是原来第几号的那位。(示例)
5星 · 资源好评率100%
以下是Python代码实现:
```python
n = int(input("请输入总人数:"))
nums = list(range(1, n+1)) # 生成1~n的数字列表
count = 0 # 计数器,记录报数次数
while len(nums) > 1: # 只要还有两个及以上的人在圈内,就继续循环
for i in range(len(nums)):
count += 1
if count == 3: # 报到3的人出圈
nums.pop(i)
count = 0 # 重置计数器
if count != 0: # 如果最后一个人没报到3,需要将计数器清零
count = 0
else: # 如果最后一个人报到3了,需要将计数器重置为2
count = 2
print("最后留下的同学是:", nums[0])
```
程序的思路是:先生成1~n的数字列表,然后循环报数,每报到3的人就出圈,直到只剩下一个人为止。最后输出留下的同学的编号。
阅读全文