class Solution {
public:
int find(int n,int k){
// 设函数find(n,k)可以从n个人中,从第0个开始找,找到存活的人
// 0...n-1
if(n<=1) return 0;
int ans=find(n-1,k); //现在ans存放的是,从n-1人中,步长为k的找出幸存者
//现在要算,幸存者在当前数组中的位置
// 从0开始,下一个找到并淘汰的人是: (k-1)%n,随后从 (k-1)%n+1 开始找下下个被淘汰的
ans=(ans+(k-1)%n+1)%n;
return ans;
}
int findTheWinner(int n, int k) {
return find(n,k)+1;
}
};
class Solution {
public int find(int n,int k){
if(n==1) return 0;
return (find(n-1,k)+(k-1)%n+1)%n;
}
public int findTheWinner(int n, int k) {
return find(n,k)+1;
}
}