又一道面试题,难为人的,俺说说自己的方法,大家看看还有什么好方法?

来源:互联网 发布:access数据库2010 编辑:程序博客网 时间:2024/04/29 19:08
题目是这样地:
(2)有一个沙漠长1000公里,在沙漠的一边,有一头驴子,同时还有3000根萝卜,这头驴子每走1 公里就要吃一根萝卜,这头驴子一次最多拉1000根萝卜,问怎么样才能把最多的萝卜拉到沙漠的另外一边?拉多少根?请设计一个方案。

刚开始一看这个题这个郁闷啊,一次最多运1000个,1000公里就吃了1000个,感情到了终点啥也不剩了?!而且题目没有说明,如果不负重得话是不是还吃萝卜。俺不管了,就当是吃萝卜好了。那如果这样的话,这头驴连回来的饭钱都没有,可怜啊!

但是后来想一想,如果这头驴走了一公里,吃掉了一个萝卜,那么剩下999根萝卜。如果此时补充一个萝卜,那么到终点就剩下这一个萝卜。这么就是说,如果能够在沿途布置好补充的萝卜,那么补充多少萝卜,最后到达终点就剩下多少萝卜。可是关键是怎么在沿途布置好补充的萝卜呢?布置萝卜必然有损失,这个损失究竟是多少呢?

那么就着么分析好了。

假设这头驴背着1000个萝卜走了一公里,吃掉一个萝卜,然后它放下998个萝卜,反身回去,吃掉一个萝卜。这样就有998根可爱的萝卜离终点近了一公里,也消耗了2个萝卜。依此类推,全部3000根萝卜都前进一公里的话?就需要消耗5根萝卜,剩下2995根萝卜。(这头驴够累啊?

而当萝卜的数量大于2000时,所有的萝卜前进一公里都需要消耗5根萝卜。这样的话,到了距终点800公里的地方,剩下2000根萝卜了。

再往下走,每走一公里的萝卜消耗量就是3根了。而萝卜大于1000时都是这样的,也就是说,当走到距离终点467公里时,还剩下1001根。此时如果再往前搬运的话消耗3根并不划算,所以需要丢车保帅,扔下那一根算了,咱们带着这1000跑。

于是这样到了终点一共剩下533根萝卜。(不过这商人太傻,这种驴还留着有啥用?赶紧,卸萝卜杀驴先!)

不知道还有什么好方法啊?不过除了这种沿途布置萝卜的方法我是不知道了,各位聪明的朋友,你们看看吧。
原创粉丝点击