猴子问题

题目:一个小猴子边上有100根香蕉,它要走过50米才能到家,每次它最多搬50根香蕉,(多了就被压死了) ,

它每走1米就要吃掉一根,请问它最多能把多少根香蕉搬回家里?

分析:

当然了这个题按平时的思想:一共100个香蕉,来回刚好100米,所以带回0根香蕉。

很显然滴滴面试题不是这么容易的,那么请看正确的解法:

 首先小猴子第一次返回拿剩余香蕉的点距离香蕉原地点小于25米,

 

解法如下: 
一>方程法:

需要找到一个点,当小猴子拿香蕉时能拿最多的香蕉(<=50),这样它可以一次到家,不用再往返。
设Y为要求的香蕉最大剩余数,X为要求的那个点(X米),可以列出方程组:
1. Y=(100-3X) - (50-X)
2. (100-3X)<=50 
很容易求出Y=16  
 
 
 
二>图解法:
我遇到问题还是比较喜欢用图解,因为这样更加的通俗易懂,更形象!!!
 
 

 总结:一共有两种方法。他走到16米和17米处倒回都最多剩下16根。先背50根,他走到16米处,
除去来回16*2=32,还剩18根,然后又背50根走到16米处吃了16根,还剩34根然后再背上16根走到终点就还剩16根,走到17米处方法一样也还剩16根。 

 

 

 

 

 

相关文章

背景:计算机内部用补码表示二进制数。符号位1表示负数,0表...
大家好,我们现在来讲解关于加密方面的知识,说到加密我认为不...
相信大家在大学的《算法与数据结构》里面都学过快速排序(Qui...
加密在编程中的应用的是非常广泛的,尤其是在各种网络协议之...
前言我的目标是写一个非常详细的关于diff的干货,所以本文有...
对称加密算法 所有的对称加密都有一个共同的特点:加密和...