一球从100米高度自由落下,每次落地后回原高反跳度的一半再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
首先我们通过一张图来分析一下:
通过分析得出结论:
- 第n次反弹的高度为100/2的n次方
- 第n次总共经过的米数 = 第n-1次总共经过的米数 + 第n次反弹的高度 * 4
代码实现:
#include<stdio.h>
#include<math.h>
int main()
{
float s = 100; //第一次落下的米数
float n,h;
for (n = 2; n <= 10; n++)
{
h = 100 / pow(2, n); //求第n次反弹的高度
s = s + h * 4; //求第n次总共经过的米数
}
printf("第十次落地时,总共经过%f米;第十次反弹%f米;", s, h);
return 0;
}
以上就是小球落地问题的完整实现,供大家参考。