首页 > 代码库 > 约瑟夫
约瑟夫
#include<stdio.h>
int k;
int M;
int step[100];
int yue(int m)
{
int a=0;
int wo=0;
for(int i=0;;i++)
{
if(wo==k)
return 1;
if(step[i%(2*k)]==0)
continue;
else
{
a++;
if(a==m)
{
if(step[i%(2*k)]<=k)
return 0;
else
{
step[i%(2*k)]=0;
wo++;
a=0;
}
}
}
}
}
int main()
{
//freopen("in.txt","r",stdin);
while(scanf("%d",&k)&&k!=0)
{
for(int i=k+1;;i++)
{
for(int j=0;j<2*k;j++)
step[j]=j+1;
if(yue(i))
{
printf("%d\n",i);
break;
}
}
}
return 0;
}
约瑟夫
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。