这个题目真诡异,感觉案例是错误的,贴个代码参考:
#include<stdio.h>
#define MAXN 20
void CountOff(int n,int m,int out[]);
int main()
{
int i,n,m,out[MAXN];
scanf("%d %d",&n,&m);
CountOff(n,m,out);
for(i = 0;i<n-1;i++)
printf("%d ",out[i]);
return 0;
}
void CountOff(int n,int m,int out[])
{
int a[MAXN+1];
int i,j,t=n,q=1,k=0;//t表示剩余人数
for(i=1;i<=n;i++)
a[i] = 0;
for(i= 1;i<=n;i++)
{
if (a[i] == 0)
{
if(q%m == 0)
{
out[k++] = i;
q = 1;
a[i] = 1;
t--;
}else
{
q++;
}
}
if(i == n)
i = 0;
if(t == 1)
break;
}
}