码迷,mamicode.com
首页 > 其他好文 > 详细

蜗牛爬墙

时间:2015-03-04 06:17:49      阅读:493      评论:0      收藏:0      [点我收藏+]

标签:蜗牛爬墙   数据结构经典问题   

蜗牛爬墙
一只蜗牛爬10米高的城墙,早上爬3米,晚上下落2米,问蜗牛多少天可以爬过那10米的城墙?

第一天白天:3米
第一天晚上:下落2米    第一天前进:1米
第二天白天:1+3米
第二天晚上:下落2米    第二天前进:2米
......
最后登上10米城墙

数据结构分析:
初始高度:high=0;            蜗牛爬的高度(变化):int high;
白天爬的高度(不变):3;        晚上下落的高度(不变):2;
一天爬行高度(不变):1;
蜗牛的高度等于大于10时的那天白天就成功,即n天后加3大于等于10就ok
循环:每天都进行爬行(利用do while循环,先操作一遍再判断,直到最终结果,但循环次数未知)
条件判断:高度到达10米为最终条件

蜗牛爬墙的奥赛题:(结果很是有点出乎意料啊)
有一个古老的难题是关于蜗牛爬墙的。这个题目是这样的:
  有一座11尺高很滑的砖墙,一只蜗牛开始向上爬。一个小时它能爬5尺,但是每爬完一小时后它都要歇上一小时。在这一小时的休息过程中,它又滑下去3尺。蜗牛爬到墙顶要几小时?
  这只蜗牛千辛万苦爬到了顶上,然后它开始从另一端往下爬,一个小时它能爬5尺,但是每爬完一小时后它都要歇上一小时。在这一小时的休息过程中,它又滑下去3尺。需要多长时间蜗牛才能从另一面爬下这座两面都很滑的砖墙?
        人们很容易就会说,既然它实际上每两小时爬2尺,那么它要花11个小时才能爬11尺高的墙。
  当然这是不对的。不错,6个小时后它只爬了6尺,但下一个小时它爬完5尺后就会坐在墙头上了,所以总共要用7小时。
  蜗牛从墙上爬下来要用1小时。
  大多数人都会说要用2.6小时,但是既然蜗牛在一小时的休息过程要向下滑3尺,那也就是说只要它在墙上呆一小时,它就会滑下去3尺。所以如果是一面不滑地墙,它一小时能爬8尺,而不是5尺。在向下爬的这一个小时里,如果它爬的是一面光滑的墙,那么它同样也要再滑下来3尺,这样一小时内总共下来11尺,这正好是我们这面墙的高度。

蜗牛爬墙

标签:蜗牛爬墙   数据结构经典问题   

原文地址:http://zlfwmm.blog.51cto.com/5892198/1617054

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!