python算法 -- 04 约瑟夫环问题

约瑟夫环问题

  • 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))

你可能感兴趣的:(算法,python,开发语言)