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