题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的是原来第几号的那位。
n = int(input('请输入总人数:'))
num = []
for i in range(n):
num.append(i + 1)
i = 0#下标
k = 0#计数,轮三个人后K=3
m = 0#淘汰的人数,当只剩一个人时( m < n - 1不成立)结束循环
while m < n - 1:
if num[i] != 0 : k += 1
if k == 3:#第三个人的条件
num[i] = 0#记录这个人的状态,0表示淘汰
k = 0#重新开始循环
m += 1#淘汰人数+1
i += 1#下标加1
if i == n : i = 0#遍历到最后,下标等于总人数,下标从0开始,重新循环
i = 0
while num[i] == 0:#从第一个开始遍历,等于0的话查找下一个,不等于0则输出这个数
i += 1
print(num[i])