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的人退出圈子,問最后留下的是原來第幾號的那位。 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 python 實現:題目:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位 報數問題:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位 約瑟夫環問題:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 有10個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是第幾號的人 【轉】約瑟夫環算法---------題目:有n個人圍成一圈,順序排號,從第一個開始報數(從1到3報數),凡報到3的人退出圈子,問最后最后留下的是原來第幾號的那位. JAVA編程---------37、n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡是報到3的人退出圈子,問最后留下的是原來第幾號的那位。
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM