【数学题】猴子搬香蕉

本篇博文主要想讲一讲一道数学题,该题是我面试网易游戏时,初始的面试官提出的。

题目:一只猴子想要把身边的香蕉搬回家。它身边有 100 根香蕉;它家在离它目前位置 50 米远的地方;它每次最多只能搬运 50 根香蕉;它在行走过程中每走 1 米就要吃掉 1 根香蕉补充能量。请问,猴子最多能搬运多少根香蕉回家?

解决方案

答案是 16 根

猴子首先搬运 50 根香蕉走 1 米,然后再折返回去,再搬运剩下的 50 根香蕉继续走 1 米。这个过程相当于搬运了所有的香蕉走了 1 米,与此同时消耗了 3 根香蕉。于是,我们可以理解成:搬运 50 根以上的香蕉的话,每走 1 米需要消耗 3 根香蕉

这时,这道题的解可以理解成:猴子先搬运所有香蕉走足够长的距离(每走 1 米消耗 3 根香蕉),当香蕉数量接近 50 根的时候,这时猴子可以带着这 50 根直接回家(因为剩下的路程小于 50 米),未被消耗的香蕉数量就是可以带回家的香蕉数量

那么搬运所有香蕉走多少米呢?实际上,就是解这个方程:50=100-3x,解得 x=16.666。由于 x 是整数,因此取 x 等于 16 或者 17。

这时,分情况讨论。当 x=16 时,猴子走了 16 米,此时香蕉还剩 100-16*3=52 根,遗弃 2 根,带着 50 根香蕉走完接下来的 34 米回到家中,未被消耗的香蕉数量是 50-34=16;当 x=17 时,猴子走了 17 米,此时香蕉还剩 100-17*3=49 根,带着这 49 根香蕉走完接下来的 33 米回到家中,未被消耗的香蕉数量是 49-33=16。

两种情况得到的结果都是 16,因此猴子最多能搬运 16 根香蕉回到家中。