【题目描述】
NN个人围成一圈,从第一个人开始报数,数到MM的人出圈;再由下一个人开始报数,数到MM的人出圈;…输出依次出圈的人的编号。
【输入】
输入NN和MM。
【输出】
输出一行,依次出圈的人的编号。
【输入样例】
8 5
【输出样例】
5 2 8 7 1 4 6 3
【提示】
【数据范围】
对于所有数据,2≤N,M≤10002≤N,M≤1000。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,m;
queue <int> q;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
q.push(i);
}
while(q.size()>=2){
for(int i=1;i<=m-1;i++){
q.push(q.front());
q.pop();
}
cout<<q.front()<<" ";
q.pop();
}
cout<<q.front();
return 0;
}
给个点赞吧!!!