---人生苦短,我用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]))