class Queue: #初始化队列 def __init__(self): self.items=[] #加入队列 def enqueue(self,item): self.items.append(item) #出队列 def dequeue(self): return self.items.pop(0) #判断是否为空 def empty(self): return self.size()==0 #返回长度 def size(self): return len(self.items) #约瑟夫斯问题 def josephus(namelist, num): simqueue = Queue() for name in namelist: simqueue.enqueue(name) while simqueue.size() > 1: for i in range(num): simqueue.enqueue(simqueue.dequeue()) simqueue.dequeue() return simqueue.dequeue() if __name__ == '__main__': print(josephus(["Bill", "David", "Kent", "Jane", "Susan", "Brad"], 3))
Python中的 items 方法:
Python 字典 items() 函数作用: