N个人围成一圈,从第一个人开始报数,数到M的人出圈;再由下一个人开始报数,数到M的人出圈,...输出依次出圈的人的编号。N,M由键盘输入。
#include<cstdio>
#include<iostream>
using namespace std;
const int p=20000;
bool a[p+1];
int main()
{
for(int i=0;i<=p;i++)
a[i]=true;
int N,M;
cin>>N>>M;
int count=0;//报数
int out=0;//记录已经出圈的人数
int t=0;//指针遍历数组
do{
t++;
if(t==N+1) t=1;
if(a[t]==true) count++;
if(count==M)
{
count=0;
cout<<t<<" ";
a[t]=false;
out++;
}
}while(out<N);
return 0;
}