0, 1, … , n-1 这n个数字排成一个圈圈,从数字0开始每次从圆圏里删除第m个数字。求出这个圈圈里剩下的最后一个数字。
# -*- coding:utf-8 -*-
class Solution:
def LastRemaining_Solution(self, n, m):
# write code here
# 没有小朋友时
if n < 1 or m < 1:
return -1
# 递推公式:n>2时,f(n,m)=(f(n-1,m)+m)%i
last = 0
for i in range(2, n + 1):
last = (last + m) % i
return last