n个人围城圈报数报到3就离开
时间: 2024-02-11 19:07:02 浏览: 82
有100个人围成一个圈,从1开始报数,报到14的这个人就要退出
5星 · 资源好评率100%
这个问题可以用程序模拟。假设有 n 个人,我们可以用一个列表来表示这些人,初始时每个人的编号为 1 到 n。我们可以用一个变量 pos 来表示当前报数的人在列表中的位置,初始时 pos=0。每次报数时,pos 先加 1,然后取模 n,使得 pos 的值在 0 到 n-1 之间。如果当前报数的人的编号是 3 的倍数,就将其从列表中删除。最后剩下的那个人就是胜利者。具体实现可以参考下面的代码:
```
n = int(input("请输入总人数:"))
people = list(range(1, n+1))
pos = 0
while len(people) > 1:
pos = (pos + 2) % len(people)
del people[pos]
print("胜利者是第", people[0], "个人")
```
阅读全文