题目描述:
n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。
输入格式:
n m
输出格式:
出圈的编号
样例输入:
10 3
样例输出:
3 6 9 2 7 1 8 5 10 4
时间限制: 1000ms
空间限制: 256MB
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[101],n,m,x,s=0;
cin>>n>>m;
x=n;
for(int i=0;i<n;i++){
a[i]=1;
}
while(1){
for(int i=0;i<n;i++){
s=s+a[i];
if(s==m){
a[i]=0;
cout<<i+1<<" ";
s=0;
x--;
}
}if(x==0){
break;
}
}
return 0;
}