Josephus Problem

有n个人围坐在一起,从第一个人开始报数,数到m的那个人出列,然后从出列的下一个人开始重新报数,数到m的那个人又出列,重复这个过程直到剩下最后一个人。求这个人在原队列中的位置。

1
2
3
4
5
def josephus(n, m):
if n == 1:
return 0
else:
return (josephus(n - 1, m) + m) % n