//数组法约瑟夫环
//1000人限制,
#include<stdio.h>
#include<string.h>
int main()
{
int a[1000];
int count=0;int i,j=0;int m,n;
printf("Input n and m:");
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
a[i]=1;//刚开始全在圈中
for(i=1;count<n-1;i=i%n+1)//i从1到n反复循环
{
if(1==a[i])
{
j++;
}
if(m==j)
{
a[i]=0;
count++;
j=0;
}
if(a[i]==0)
{ a[i]=11;//输出的关键,只要不是1和0就行,防止重复输出
printf("%d ",i);//不是a[i]
}
}
//for(i=1;i<=n;i++)
putchar('\n');
return 0;
}
时间: 2024-09-28 15:49:21