n 个人围成一圈,从第一个人开始报数,数到 m 的人出列,再由下一个人重新从 11 开始报数,数到 m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。
输入格式
输入两个整数 n,m。
输出格式
输出一行 n 个整数,按顺序输出每个出圈人的编号。
输入输出样例
输入
10 3输出 #1复制
3 6 9 2 7 1 8 5 10 4说明/提示
1≤ n,m ≤100
代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+5;
int t , h;
int many , numb , r[N];
void Joseph(int m , int n){
for(int i = 1 ; i <= m; ++ i){
r[t ++] = i;
}
while(t - h > 0){
for(int j = 1;j < n; ++ j){
r[t ++] = r[h];
++ h;
}
cout<< r[h] << " ";
++ h;
}
return;
}
int main(){
cin >> many >> numb;
Joseph(many , numb);
return 0 ;
}