文章
65
粉丝
25
获赞
769
访问
54.0k
 
#include <bits/stdc++.h>
using namespace std;
    int main(){
    int n,s,m;//s个猴子开始报数,第m个猴子退出报数
    while(cin>>n>>s>>m){
        if(n==0)break;
        vector<int>a(n);
        for(int i=0;i<n;i++)
            a[i]=i+1;
        s=s-1;m=m-1;//猴子对应的数组下标,全部用下标来思考 
        while(a.size()>1){
            s=(s+m)%a.size();//直接找到要出队的猴子 
            cout<<a[s]<<",";
            a.erase(a.begin()+s);//s为要删除元素的下标 
        }
        cout<<a[0]<<endl;
    }
    return 0;
}
登录后发布评论
牛逼