游戏: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