守望英雄克制nga:一只猴子有100个香蕉,离家50米,一次最多可以背50个香蕉,可以往返走问猴子最多可带多少个香蕉到家?

来源:百度文库 编辑:中科新闻网 时间:2024/05/07 01:51:30
无论往返每次走路必须要走1米~也就是吃一个香蕉

100个香至少走三次 150个香蕉最少走7次 200个香蕉至少走13次 与汉诺塔不同

C程序:

main()
{
int n,j,i,t,s,l;
/*n为倍数 j为余数 i为步数 t为最大携带数 s为香蕉总数 l为总路程*/
printf("请分别输入香蕉总数,离家路程,最大携带量:\n");
scanf("%d%d%d",&s,&l,&t);

while(s!=0) {
j=s%t;
n=s/t;
i=0;

if(j>2)
{for(;++i;)
if(j-2*i<=i*(2*n-1)+2)break;
l-=i;s-=i*(2*n+1);}

else if(j==0)
{for(;++i;)if(t<=i*(2*n-1))break;
if(tl-=i;s-=i*(2*n-1);}

else s-=j;
}

/*求出猴子把香蕉全部吃完能走多远
大于离家路程多少单位就是可带回的香蕉个数*/
l=-l;
if(l<=0)printf("\n猴子带不回香蕉");
else printf("\n猴子最多能带回%d个香蕉",l);
getch();
}

/////PS:我是抄的。别BS我。

25个