题目描述
n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号.
输入格式:
n m
输出格式:出圈的编号
输入输出样例
说明
m,n≤100m, n \le 100
m
,
n
≤
1
0
0
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int a[n+1],j=n,p=0,k=1;
for(int i=1;i<n;i++)//指向下一个节点
a[i]=i+1;
a[n]=1;
while(p<n)
{
while(k<m)
{
j=a[j];
k++;
}
cout<<a[j]<<" ";
p++;
a[j]=a[a[j]];
k=1;
}
return 0;
}
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int a[n+1],j=n,p=0,k=1;
for(int i=1;i<n;i++)//指向下一个节点
a[i]=i+1;
a[n]=1;
while(p<n)
{
while(k<m)
{
j=a[j];
k++;
}
cout<<a[j]<<" ";
p++;
a[j]=a[a[j]];
k=1;
}
return 0;
}