num = int(input("请输入人数n(n>0):"))
L = list(range(1, num + 1))
def reserve(L, num):
if num == 1 or num == 2:
return L[num - 1]
else:
index = num % 3
m = num // 3
for i in range(m, 0, -1):
L.remove(L[3 * i - 1])
LN = L[-index:] + L[:-index]
return reserve(LN, num - m)
re = reserve(L, num)
print("最后留下来的是原来第{}号的那位".format(re))
Python3:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
最新推荐文章于 2023-09-22 18:04:30 发布