题解 | 约瑟夫环

约瑟夫环

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;
}

经典约瑟夫环问题,有一点点变形,在输出时处理一下即可。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务