php写猴子搬香蕉问题,世界500强企业面试题:猴子吃香蕉

题目:

有只猴子在树林里采了100根香蕉,堆成一堆。猴子家离香蕉堆50米,猴子打算把香蕉背回家,每次最多背50根。可是,猴子嘴馋,每走一米就要吃一根香蕉。问猴子最多能背回几根香蕉?

分析和答案

答案1:25(返回走的时候没吃香蕉)

猴子从香蕉堆带50根香蕉走到离家25米处,吃完25根,放下剩下的25根香蕉,原路折返!再带50根香蕉回家,此时走到离家25米处一共有50根香蕉了,再走25米继续吃掉25根,所以,还剩下25根香蕉!

答案2:16 (返回走的时候也吃香蕉)

分析1:在剩余香蕉大于50根之前,猴子每走1米要吃3根香蕉,因为他走1米吃掉1根后,还得往回走1米抱剩下的香蕉,这又得吃1根,然后再回到原位置需要走1米,再吃1根,所以实际上猴子走1米需要消费3个香蕉。

当走到17米的时候,猴子一共吃了17*3=51个香蕉,还剩49,这样猴子就可以一次性搬回家了,不用往回去搬香蕉,离家还剩下50-17=33米,需要吃33根香蕉,所以到家时还剩下49-33=16根

分析2:将50米分两段,前段为X米,剩余的为50-X米,最终搬回家的香蕉数为Z根。稍作计算可知,将全部香蕉搬至X处时,还剩余100-3X支香蕉。要能使剩余香蕉能一次性全部搬回家,则有100-3X<=50 (1),最终能搬回家的香蕉数为Z=100-3X-(50-X)=50-2X (2)。综合(1)(2)两式可得当X=17时,Z max=16(根)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值