Python初學者練習:有n個人圍成一個圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 python 實現:題目:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位 有n人圍成一圈,順序排號。從第1個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來的第幾號的那位。 有n個人圍成一圈,順序排號。從第1個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位 有n個人圍成一圈,順序排號。從第1個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位 JAVA編程---------37、n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡是報到3的人退出圈子,問最后留下的是原來第幾號的那位。 C語言 約瑟夫圈問題:N個人圍成一圈,從第一個人開始按順序報數並編號1,2,3,……N,然后開始從第一個人轉圈報數,凡是報到3的退出圈子。則剩下的最后一個人編號是多少。 13個人圍成一圈,從第1個人開始順序報號1,2,3。凡報到3者退出圈子。找出最后留在圈子中的人原來的序號。要求用鏈表實現 C# 有N個人圍成一圈,第一個人從1開始報數,報到M的人出列,求依次出列的人的編號 Ps 初學者教程,創建您的第一個圖層蒙版
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM