一球从100米高度自由落下,每次落地后回原高反跳度的一半再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
首先我们通过一张图来分析一下:
通过分析得出结论:
- 第n次反弹的高度为100/2的n次方
- 第n次总共经过的米数 = 第n-1次总共经过的米数 + 第n次反弹的高度 * 4
代码实现:
#include#include 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; }
以上就是小球落地问题的完整实现,供大家参考。



