猴子吃香蕉的编程(一个猴子有100个香蕉,离家50米,猴子最多只能搬50个香蕉,猴子每走1米要吃一根香蕉,问最多能搬多少香蕉回家 )

韩楚风
领域专家: 数据库技术领域
2009-11-01 12:30:05
25还是16,各说不一,求高手讲清道理
...全文
10403 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jkx01whg 2009-11-04
  • 打赏
  • 举报
回复
猴子没搬香蕉时不用吃???
forster 2009-11-04
  • 打赏
  • 举报
回复
原来这样啊,,关键是就是要一直搬着50跟走啊
搬50跟走一米吃一根 不搬应该吃的少。。。
贾子枫 2009-11-04
  • 打赏
  • 举报
回复
再补充详细一点:

猴子搬50根香蕉,假设出发时为0米。

走到1米,吃一根,放两根。

走到16米,吃一根,放两根。

这是手里还有2根,走到17米,吃一根,放一根。然后回过身。

走到16米,吃掉地上一根。

走到1米,吃掉地上一根。走到0米,吃掉地上一根。地上还剩49根。

抱着这49根,走到17米,吃到17米。还剩下33米要走。

所以走到家还有16根。
forster 2009-11-04
  • 打赏
  • 举报
回复
有意思撒 我正吃呢。。
贾子枫 2009-11-04
  • 打赏
  • 举报
回复
Lz题目写的都不是很清楚吧。。

微软面试智力题

一个小猴子边上有100根香蕉,它要走过50米才能到家,
每次它最多搬50根香蕉,(多了就被压死了),它每走
1米就要吃掉一根,请问它最多能把多少根香蕉搬到家里。

提示:他可以把香蕉放下往返的走,但是必须保证它每走
一米都能有香蕉吃。也可以走到n米时,放下一些香蕉,
拿着n根香蕉走回去重新搬50根。

答案在下面:

(50-17)+16=49

16跟..............................................

猴子走1米吃一根回一米吃一跟在去一米吃一根也就是搬一次要走3趟
结果一次备50跟,那么就是50/3=16。6666米
假设17米

猴子走了17米再回去搬剩下的50跟得 50-17=33跟
再回来,然后加上17米处第一次搬的蕉蕉

再然后背着蕉蕉回家,结果应该是16跟
liuchui2009 2009-11-04
  • 打赏
  • 举报
回复
声明一下 不是原创
liuchui2009 2009-11-04
  • 打赏
  • 举报
回复
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();
}

参考资料:http://www.bc-cn.net/bbs/Article/20055/9/17747.html
韩楚风 2009-11-04
  • 打赏
  • 举报
回复
如果是16的话,那是怎么一个搬法,想不明白
tonglichao09 2009-11-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 senllang 的回复:]
25还是16,各说不一,求高手讲清道理
[/Quote]
是16
这题我笔试也做了
因为只能搬50个,其实就是最大限度的消耗搬不动的五十个同时要把另外的五十往前运
tonglichao09 2009-11-02
  • 打赏
  • 举报
回复
瞎说,回去不用吃啊[Quote=引用 6 楼 pengderun 的回复:]
25,先搬50個走25米放下,回去再搬50個走25米,然後在25米那裏一次搬完剩下的50個,最後剩25個。
[/Quote]
pengderun 2009-11-02
  • 打赏
  • 举报
回复
25,先搬50個走25米放下,回去再搬50個走25米,然後在25米那裏一次搬完剩下的50個,最後剩25個。
buyan2009 2009-11-01
  • 打赏
  • 举报
回复 1
16
理由如下:
去(搬一部分)——回来——去(搬剩余):这样的路程为x,消耗3*x个香蕉
当100-3*x<=50时,一次搬完剩余路程。临界值x=17。
故到家时香蕉数=100-3*17-(50-17)=16
baihacker 2009-11-01
  • 打赏
  • 举报
回复
from:百度知道

汽车要多少有才可以穿过沙漠?(请写出计算过程)
悬赏分:50 - 解决时间:2007-8-29 16:52
一卡车到563千米宽的沙漠边缘,卡车走一千米要一升油,卡车只能带315升油,沙漠边有加油站,在途中也可以设立驻油点。汽车要多少有才可以穿过沙漠?(请写出计算过程)
问题补充:汽车要多少油才可以穿过沙漠?
提问者: mzp646464 - 助理 二级 最佳答案
此题是有难度的。我希望没有理解题意的人不要在这里瞎说!
正确解法:
1)因为卡车的总载油能力为315升,卡车每千米耗油1升,为了消耗最少的汽油,最后一个储油点应该离终点315千米,且此处储油315升,这样恰好能穿越沙漠。即储油点m=1处离终点315千米,储油315升;
2)为了在m=1处储315升汽油,卡车最少从储油点m=2处开两趟载满油的车到储油点m=1处,则储油点m=2处储油315*2=630升,离终点315+315/3=420千米。(储油点m=2处到储油点m=1处开三趟需要开三次路程)
3)为了在储油点m=2处储630升汽油,卡车最少从储油点m=3处开三趟载满油的车到储油点m=2处,则储油点m=3处储油315*3=945升,离终点420+315/5=483千米。(储油点m=3处到储油点m=2处开三趟需要开五次路程)
4)为了在储油点m=3处储945升汽油,卡车最少从储油点m=4处开四趟载满油的车到储油点m=3处,则储油点m=4处储油315*4=1260升,离终点483+315/7=528千米。(储油点m=4处到储油点m=3处开三趟需要开七次路程)
5)为了在储油点m=4处储1260升汽油,卡车最少从储油点m=5处开五趟载满油的车到储油点m=4处,则储油点m=5处储油315*5=1575升,离终点528+315/9=563千米。(储油点m=5处到储油点m=4处开三趟需要开九次路程)
至此,可知m=5处为起点。所以共需油1575升
回答者: li_ufo2006 - 秀才 三级 8-29 15:49
查看用户评论(1)>>
enter333 2009-11-01
  • 打赏
  • 举报
回复
纯帮顶。。
AAA20090987 2009-11-01
  • 打赏
  • 举报
回复
能在半路上放下香蕉吗。
非兔子_Logic0 2009-11-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 baihacker 的回复:]
from:百度知道

汽车要多少有才可以穿过沙漠?(请写出计算过程)
悬赏分:50 - 解决时间:2007-8-29 16:52
一卡车到563千米宽的沙漠边缘,卡车走一千米要一升油,卡车只能带315升油,沙漠边有加油站,在途中也可以设立驻油点。汽车要多少有才可以穿过沙漠?(请写出计算过程)
问题补充:汽车要多少油才可以穿过沙漠?
提问者: mzp646464 - 助理 二级 最佳答案
此题是有难度的。我希望没有理解题意的人不要在这里瞎说!
正确解法:
1)因为卡车的总载油能力为315升,卡车每千米耗油1升,为了消耗最少的汽油,最后一个储油点应该离终点315千米,且此处储油315升,这样恰好能穿越沙漠。即储油点m=1处离终点315千米,储油315升;
2)为了在m=1处储315升汽油,卡车最少从储油点m=2处开两趟载满油的车到储油点m=1处,则储油点m=2处储油315*2=630升,离终点315+315/3=420千米。(储油点m=2处到储油点m=1处开三趟需要开三次路程)
3)为了在储油点m=2处储630升汽油,卡车最少从储油点m=3处开三趟载满油的车到储油点m=2处,则储油点m=3处储油315*3=945升,离终点420+315/5=483千米。(储油点m=3处到储油点m=2处开三趟需要开五次路程)
4)为了在储油点m=3处储945升汽油,卡车最少从储油点m=4处开四趟载满油的车到储油点m=3处,则储油点m=4处储油315*4=1260升,离终点483+315/7=528千米。(储油点m=4处到储油点m=3处开三趟需要开七次路程)
5)为了在储油点m=4处储1260升汽油,卡车最少从储油点m=5处开五趟载满油的车到储油点m=4处,则储油点m=5处储油315*5=1575升,离终点528+315/9=563千米。(储油点m=5处到储油点m=4处开三趟需要开九次路程)
至此,可知m=5处为起点。所以共需油1575升
回答者: li_ufo2006 - 秀才 三级  8-29 15:49
查看用户评论(1)>>
[/Quote]

呵呵,这是有一年的NOIP题,跟楼主的一样。是个逆向分析题

15,446

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧