/*N个人围成圈子,从第一个人开始报数(从1到M号),凡是报到M的出圈,在从1开始,最后留下的是几号?*/
#include<stdio.h>
#include<ctype.h>
main()
{outcricle();
}
outcricle()
{ int n,m;
printf("\nplease input the number of peopel and outNo.\n");
scanf("%d%d",&n,&m);
printf("The last people is %d",f(n,m));
}
f(int a,int b)
{int k[20],i,j=1;
for(i=1;i<=a;i++)
k[i]=i;
for(i=1;i<=a;i++,j++)
{ if(j==b)
{for(;i<a;i++)
i=i+1;
a--;
j=1;
}
if(i==a)
i=1;
/* if(a==1)
{ return();
break;
} */
}
}
我最不明白的是,为什么有没有 if(a==1)
{ return();
break;
} ,/////大家可以试一下//////
都可以输出,并且输出的结果都一样呢?