public class Solution {
// 方式一:递归
public int LastRemaining_Solution(int n, int m) {
return (n == 1) ? 0 : (LastRemaining_Solution(n - 1, m) + m) % n;
}
// 方式二:非递归
public int LastRemaining_Solution2(int n, int m) {
int res = 0;
for (int i = 2; i <=n; i++) {
res = (res+m)%i;
}
return 0;
}
}
解题思想:约瑟夫环问题,公式:f(n,m)=(f(n-1,m)+m)%n

京公网安备 11010502036488号