欢迎来到Felix的博客

雨恨云愁,江南依旧称佳丽。水村渔市。一缕孤烟细。天际征鸿,遥认行如缀。平生事。此时凝睇。谁会凭阑意
返回顶部

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

游戏: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
posted @ 2021-01-19 14:44  felixtester  阅读(645)  评论(0)    收藏  举报