这个程序还可以,新手学习很好
/*约瑟夫问题:m个人围成一个圈报数,报n的人出圈,剩下的人继续报数,也是报n的人出圈,
问出圈人的序号是多少以及最后一个出圈人的序号
*/
#include<stdio.h>
#define M 8
#define N 5
void main()
{
int a[M],i,k,t;
for(i=0;i<M;i++)
a[i]=i+1;
i=0;
t=0;
k=0;
while(t<M)
{
if(a[i])
{
k++;
if(k%N==0)
{
printf("%d",a[i]);
t++;
if(t==M)
printf("最后一个是%d",a[i]);
a[i]=0;
}
}
i++;
if(i==M) i=0;
}
printf("\n");
}