python 實現:題目:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位


 

count = int(input('Please input the count:'))
li = []
for i in range(count):
    li.append(i+1)
times = count//3 +2
count_tial = 0
for i in range(times):
    for j in range(count_tial+1,len(li)+count_tial+1):
        if count_tial == 2:
            li[0] = 0
        if (j - count_tial) < len(li) and (j+1)%3 == 0:
            li[j - count_tial] = 0
    count_0 = li.count(0)
    try:
        count_tial = len(li) - li.index(0,len(li)-3,len(li))-1
    except Exception as e:
        break
    for i in range(len(li)):
        try:
            li.remove(0)
        except:pass
if len(li) == 2:
    print('\n   ! ! ! The last is:',li[1],' ! ! !')
else:print('\n   ! ! ! The last is:',li[0],' ! ! !')
# print('\n(last li:',li,')')

 參考https://blog.csdn.net/cuipengchong/article/details/38760127


免責聲明!

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



猜您在找 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 報數問題:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位 約瑟夫環問題:有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。 有10個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是第幾號的人 【轉】約瑟夫環算法---------題目:有n個人圍成一圈,順序排號,從第一個開始報數(從1到3報數),凡報到3的人退出圈子,問最后最后留下的是原來第幾號的那位. Python初學者練習:有n個人圍成一個圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位 有n個人圍成一圈,順序排號。從第1個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM