雕刻时光

just do it……nothing impossible
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

约瑟夫环

Posted on 2011-11-03 21:52  huhuuu  阅读(164)  评论(0编辑  收藏  举报

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;
}
}
}
}