约瑟夫环

n 为环的大小 ,m 为每隔m,kill一个人

View Code
#include<stdio.h>
#include<string.h>

int a[109];

int main()
{
int i,j,n,count,m;

while(scanf("%d %d",&n,&m)!=EOF)
{
memset(a,0,sizeof(a));
int add=0;

i=0,count=1;
while(add<n-1)
{
while(a[i]!=0)
{
i++;i=i%n;
}

if(count%m==0)
{
a[i]=1;
add++;
count=0;
}

count++;
i++;i=i%n;
}

for(i=0;i<n;i++)
{
if(a[i]==0)
{
printf("%d\n",i+1);
break;
}
}
}
}



原文地址:https://www.cnblogs.com/huhuuu/p/2235064.html