[蓝蓝计算机考研算法训练二期]-day03
4、一个小球从10m处落下,每次的弹回之前的高度一半,请问小球在静止之前一共走过多少距离
思路
有点像是物理题……个人想法是除2除到0后几位小数为止,然后中间的路程是2倍的加上头一次和最后一次路程就可以得出总共走过的距离(自己不是很会写,有参考别人的)
具体实现
#include<stdio.h>
int main()
{
double h=10,sum=0,now=0;
for (int i=0;i<10;i++)
{
now+=h;
sum+=h;
h/=2;
printf("第%d次弹起,高度为:%f\n",i,h);
if (i<9)
{
now+= h;
sum+= h;
}
printf("第%d次路程:%f\n",i,now);
printf("%d次反弹时,总路程:%f\n",i+1,sum);
}
printf("答:第10次落地时,共经过%f米,10次反弹%f米\n",sum,h);
}