@[bjqxszx_zhaijingxin](/user/1036939)
```cpp
#include<bits/stdc++.h>
using namespace std;
stack<int> q;
int main() {
int n,m;
cin>>n>>m;
queue<int> q;
for(int i=1;i<=n;i++){
q.push(i);
}
int x=0;
while(!q.empty()){
for(int i=1;i<m;i++){
x=q.front();
q.pop();
q.push(x);
}
cout<<q.front()<<" ";
q.pop();
}
return 0;
}
```
我的代码可以参考一下
by leixiuzi @ 2024-04-19 18:52:08
@[bjqxszx_zhaijingxin](https://www.luogu.com.cn/user/1036939)
第八行应该是k[0]=1;
by xuzihao12345 @ 2024-04-23 19:46:23
@[bjqxszx_zhaijingxin](/user/1036939) 也可以用vector
```cpp
#include<bits/stdc++.h>
using namespace std;
vector<int> li;
int n,m;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
li.push_back(i);
int idx=0;
for(int i=1;i<=n;i++){
idx=(idx+m-1)%li.size();
cout<<li[idx]<<' ';
li.erase(li.begin()+idx);
}
return 0;
}
```
by 3_14 @ 2024-04-24 17:04:14
@[bjqxszx_zhaijingxin](/user/1036939) struct超简单
```
#include<bits/stdc++.h>
using namespace std;
struct p{
int sp;
int n_;
int last;
int num;
int next;
};
int main(){
int n,m;
cin>>n>>m;
p al[n];
al[0].last=n-1,al[0].num=1,al[0].next=1,al[0].n_=1,al[0].sp=0;
for(int i=1;i<n;i++){
al[i].last=(i+n)%(n+1),al[i].num=i+1,al[i].next=(i+1)%n;
al[i].n_=al[i].num,al[i].sp=i;
}
for(int i=0;;i=al[i].next){
if(al[i].num==m){
cout<<al[i].n_<<' ';
al[al[i].next].num=1,al[al[i].last].next=al[i].next,
al[al[i].next].last=al[i].last;
i=al[i].next;
}
else{
al[i].num=al[al[i].last].num+1;
}
if(al[i].next==al[i].sp){
cout<<al[i].n_;
return 0;
}
}
return 0;
}
```
by zzc666666 @ 2024-04-24 17:05:54
@[bjqxszx_zhaijingxin](/user/1036939)
还是用队列吧
### 遍历
把队头元素弄到队尾,再删掉队头
by kaijie2002 @ 2024-05-09 22:14:44