题目描述
题目分析
这种很有规律性的数学题适合寻找递推关系。设为人数为
时的答案,在排出第一人(即序号为
)时,该题目可变成求
,但是由于是从第
人开始算,即得到递推关系式:
我的代码
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int ans[1000002];
int main() {
int n;
int k;
cin>>n>>k;
ans[1] = 1;
for(int i = 2;i <= n;i++){
int k2 = k % i; //第一个排除的序号
ans[i] = (ans[i-1] + k2) % i;
if(ans[i] == 0){
ans[i] = i;
}
}
cout<<ans[n];
return 0;
}