题目:
有只猴子在树林里采了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(根)。
突然觉得思维逻辑这种东西可能真的需要一点天赋~~~
不管你是转行也好,初学也罢,进阶也可,如果你想学编程,进阶程序员~
【值得关注】我的 编程学习交流俱乐部!【点击进入】