您的位置:首页 > 职场人生

面试题

2016-05-26 09:36 387 查看
一个猴子身带100个香蕉,他距离家50米。这个猴子要带香蕉回去,但是他一次最多只能背50个香蕉,而且,每走一米他就要吃掉一个香蕉(往 回走也要吃香蕉)。这个猴子最后最多可以带多少个香蕉到家?
30

25

18

16

选D
解析:
猴子每往家走1米就停下来做一个判断:
a、将香蕉放下,回头去拿之前没能带走的香蕉;
b、继续往家的方向走;
那么猴子做选择的依据是:返回拿之前没能带走的香蕉所获得的收益必须大于或者等于返回路途中需要消耗的香蕉(等于的时候相当于多走点路多吃点香蕉,对吃货而言还是划得来的,最后带回家的香蕉数不会受到影响)。因为这里是走1米就判断一次,所以这里返回的消耗是2;也就是说只要每次没能带走的香蕉数大于等于2,那么回去拿都是值得的。
好了我们假设猴子第一次背着50个香蕉走到了1米处,此时在0米处(即起点)没能带走的香蕉是50个,远大于回去拿的成本数2,所以猴子果断的将身上的香蕉放下,留一个香蕉做路费返回到0米处将剩余的香蕉背到1米处,这个时候所有的香蕉都在1米处,因为0米到1米这段路猴子共走了三次,所以香蕉数共计为100-3=97。
以此类推:走了n米的时候剩下的香蕉数为100-3n;
那么这个时侯走到n+1米处,则留在n米处带不走的香蕉数是(每次最多带50个):100-3n-50=50-3n;
那么在n+1米处做上面的判断的时候就有50-3n>=2,即n<=16;
所以在n=16的时候有52个香蕉,带走50,剩下2个,猴子走到17米的时候其实是可以直接不回头一直往家走的,当然也可以回到16米处拿剩下的2个香蕉,但不管怎样在17米处,猴子都只剩下49个香蕉了,从此以后再也不用考虑要不要回去拿香蕉了,那么剩下的33米路程猴子要吃掉33个香蕉,最后带回家的就只有49-33=16
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: