python编程练习---约瑟夫环

时间:2021-01-19 19:46:39   收藏:0   阅读:25

游戏:10个人按1-10进行编号,围成一圈,从1开始报错,报到7的出队,下一个人从1开始重新报数,问最终剩下的人的编号

这个游戏是一个约瑟夫环问题,我们可以采用队列的形式来完成

from collections import deque

def jsonf(target, list):      #target目标值,list人员
    dq = deque(list)          #存入双端队列
    index = 0                 #初始化标记
    while len(dq) > 1:      #循环终止条件为剩余1个人
        temp = dq.popleft() #头部出队
        index += 1          #标记值自增
        if index == target: #标记值等于target
            index = 0       #归零
            continue        #下一轮
        else:               #标记值不等于target
            dq.append(temp) #头部出队的人从尾部入队
    return dq

原文:https://www.cnblogs.com/felixtester/p/14297906.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!