蜗牛爬墙
一只蜗牛爬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尺,这正好是我们这面墙的高度。