约瑟夫环问题
- n个人围成一个圆圈,由第1个人开始报数,每数到k该人就必须出去,然后再由下一个人重新报数,直到圆圈上少于m人为止,求最后剩下的人(n>k,n>m)
def josephu(n, k, m):
count = 0
l = [i for i in range(1, n+1)]
while len(l) > m:
count += 1
t = l.pop(0)
if count != k:
l.append(t)
else:
count = 0
return l
print(josephu(100, 4, 2))
所有评论(0)