约瑟夫环

2019-03-05 15-38-04 的屏幕截图.png
#include <iostream>
#include <cmath>

using namespace std;

int main(){
    int n,k,m,count=0,i,j=0;
    cin>>n>>k>>m;
    int *p= new int[n]();
    i=k;
    while(true){
        j=(j+1)%m;
        do{
            i=(i+1)%n;
        }while(p[i]!=0);
        if(j==m-1){
            p[i]=++count;
            if(count==n)break;
        }
    }
    cout<<i<<endl;
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容