写一个基于数组的实现

#include<iostream>
using namespace std;
/*
size个人围成一圈,从start开始报数,报到m的出列
*/
void fun(int *a,int size,int start,int m)
{
if(m<=0){
cerr << "invalid input" << endl;
return;
}
int k=0;
for(int i=start-1;i<size-1;++i){
for(int j=0;j<m;j++){
while(a[k%size]==-1){
k++;
}
if(j==m-1){
a[k%size]=-1;
}
k++;
}
}
for(int i=0;i<size;i++){
if(a[i]!=-1)
cout << a[i] << endl;
}
}

int main()
{
const int size = 9;
int m = 5;
int a[size];
for(int i=0;i<size;++i)
a[i]=i+1;
fun(a,size,1,m);
}

8