0,1,…,n−1这 n个数字 (n>0) 排成一个圆圈,从数字 0 开始每次从这个圆圈里删除第 m个数字。
求出这个圆圈里剩下的最后一个数字。
样例
输入:n=5 , m=3
输出:3
解题思路
采用递归
f(n,m)=(f(n-1,m)+m) %n
class Solution {
public:
int lastRemaining(int n, int m){
if(n==1) return 0;
return (lastRemaining(n-1,m)+m)%n;
}
};