n 个人围成一圈,从第一个人开始报数,数到 �m 的人出列,再由下一个人重新从 1 开始报数,数到 �m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。
输入格式
一行两个数 �,�n,m
输出格式
�n 个整数,按顺序输出每个出圈人的编号。
样例
输入
10 3
输出
3 6 9 2 7 1 8 5 10 4
数据范围
1≤≤≤1001≤m≤n≤100
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
const int N = 100;
int a[N];
int n, m, k = 0;
void solve()
{
while (n >= 1)
{
cout << a[(k + m - 1) % n] << " ";
k = (k + m - 1) % n;
for (int i = k; i < n - 1; i++)
a[i] = a[i + 1];
n--;
}
}
int main()
{
cin >> n >> m;
for (int i = 0; i < n; i++)
a[i] = i + 1;
solve();
return 0;
}