一.序言:
今天在逛C站的时候,突然发现一篇这样的文章《算法题: 一球从100米高度自由落下,每次落地后反跳回原高度的一半》。勾起了我的兴趣(就像小学生看见了加减法的题目,很兴奋,终于可以装13了)。
二.题目:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
三.思路:
1.首先我们来看一下这个球的运动轨迹:
2.解题思路:
我们可以清楚的看到:
a.一次反弹的高度,是原高度的一半:用高度除2循环或者递归所需次数,就能得出最终高度。
b1.经过的路程:球体原来的高度加上反弹的高度,就是一次路程,循环所需次数累加,就是总路程。
b2.经过的路程:除第一次和最后一次的高度都乘2,再加上第一次和最后一次的高度,就是最终路程。
b3.经过的路程:所有的高度都程2,再减去第一次的高度和最后一次的高度,就是最终路程。
以上是没有认真审题时,没看到路程是第10次落地时,不加上反弹路程时的思路。
经