1.题目
一个球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,那么它在第10次落地时,共经过多少米?第10次反弹多高?
2.代码如下
#include<stdio.h>
int main(void)
{
float i, h = 100, s = 100;
for ( i = 1; i <= 9; i++)
{
h = h / 2; //每落地一次,弹起高度变为原来的一半
s += h * 2; //累计的高度和加上下一次落地后弹起与下落的高度
}
printf("总长度是:%f\n", s);
printf("第十次落地后弹起的高度是:%.10f", h / 2);
printf("\n");
return 0;
}
3.个人见解
由题可知,第一次是100米落下,反弹回来时是50米,然后再从50米高度落下,以此往复。
第一次下落时,到地上时总共运动了100米。
第二次下落时,到地上时总共运动了200米。
以此推算下去。得出公式为s=s+h*2。
其中s为总长度,h为每次弹起的高度。