---人生苦短,我用Python---
这道题的思路是,n个人要一直循环报数,而且头尾相接,如何设置循环体是是关键点。
代码如下:
n = int(input('请输入人数:'))
li_c = list(range(1, n + 1)) # 将所有人放入一个数组
count = 0 # 设置一个变量,用于计算报数
while len(li_c) > 1: # 当数组中至少有2个元素时进行循环
li_co = li_c[:] # 把原数组拷贝到新数组中,用于限制内层循环次数
for i in range(0, len(li_co)): # 内层循环开始,从第一个人开始报数
count = count + 1 # 每报一次,count计数器加1
if count % 3 == 0: # 如果count能被3整除,则是报到3的人
li_c.remove(li_co[i]) # 把报到3的人移除原数组,进行下一次循环
print('最后留下的是原来的第 {} 号。'.format(li_c[0]))