猴子问题

前端之家收集整理的这篇文章主要介绍了猴子问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

题目:一个小猴子边上有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根。 

 

 

 

 

 

猜你在找的算法相关文章