目录
题目
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
问题分析
每次反弹的高度很容易计算,上一次的高度除以2就可以了。计算一共经过了多少米时,我们要知道每次上升和下降是一个来回,所以要乘以2,因为从100米高空落下,所以我们初始定义总路程的时候为100米,初始高度为50米,这样是为了在后面的上升和下降可以构成相同路程的来回,方便计算。
代码
#include<stdio.h>
main()
{
double high=50, sum=100;
for (int i = 2;i <= 10;i++) //注意是从2开始的
{
sum = 2*high + sum;
high = high / 2;
}
printf("\n第10次落地时,共经过 %lf 米,第10次反弹 %lf 米\n", sum, high);
}
运行结果