约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
用python解决约瑟夫问题代码量及其简短,只需定义一个长为n的列表,循环删掉第k+m-1个元素即可
def josephus(n, k, m):
queue = (list)(range(1, n+1))
count = k-1
for i in range(0, n+1):
if len(queue) != 0:
count = (count+m-1)%len(queue)
print("out", str(queue[count]))
del queue[count]
else: