/*有n个人围成一圈,顺序排号(从1开始)。从第一个人开始报数(从1到3报数),凡报到m的人退出圈子,问最后留下的是原来第几号的那位。
如 输入 10 ,最后留下4号
*/
#include<stdio.h>
#define N 100
int main()
{
int pos=-1;
int i=0,j=0,n,m,count=1;
int a[N]={0};
printf("人数:");
scanf("%d",&n);
printf("几个一出:");
scanf("%d",&m);
while(count<=n)
{
do{
pos=(pos+1)%n;//在这里取余数,因为要循环好几次
if(a[pos]==0)
j++;//计数
if(j==m)//如果等于指定个数,将计数还原0
{ j=0;
break;
}
}while(1);
a[pos]=count;//第几个位置上第几次出去
count++;
}
for(i=0;i<n;i++)
{
if(a[i]==n)
{printf("%d",i+1);
}
return 0;
}