[蓝蓝计算机考研算法训练二期]-day03

66 阅读1分钟

[蓝蓝计算机考研算法训练二期]-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);
}