有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
if __name__ == '__main__':
nmax = 50
n = int(input('请输入总人数:'))
num = []
for i in range(n):
num.append(i + 1)
print(num[2])
i = 0
k = 0
m = 0 #删掉的个数,最后要删掉只剩下一个人
while m < n - 1:
if num[i] != 0 :
print(num[3])
print(k)
k += 1
if k == 3:
num[i] = 0 #出圈
print("i=",i)
print(num)
k = 0
m += 1
print("m=",m)
i += 1
if i == n : i = 0
i = 0
while num[i] == 0: i += 1
print (num[i])
程序分析:
【金山文档】 程序分析 报数 逢三出圈
https://kdocs.cn/l/cljwkej3CAXP