题解 | 约瑟夫环
约瑟夫环
https://www.nowcoder.com/practice/e417cfe32c74416ca38247f619ddb322
#include<bits/stdc++.h>
using namespace std;
#define endl "\n"
int main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int n,k,m;
cin>>n>>k>>m;
int a=1;
for(int i=2;i<=n;i++){
a=(a+m-1)%i+1;
}
cout<<(a+k-1)%n<<endl;//求得a-1为最终位置到k的距离,相加后对n取模就是最终位置在原数组的中的大小
return 0;
}
经典约瑟夫环问题,有一点点变形,在输出时处理一下即可。
查看15道真题和解析