题目描述:
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 n,m,cnt,a[1001],i=0,k;
int main(){
cin>>n>>m;
while(cnt!=n){
i++;
if(i>n)i=1;
if(a[i]==0){
k++;
if(k==m)cout<<i<<" ",k=0,cnt++,a[i]=1;
}
}
return 0;
}