一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高?
思路先行:第一步:先定义初始高度为100米,初始距离为100米。第一次反弹:h=100/2;总距离:s=100+50*2;
第二次反弹:h=50/2;总距离:s=s+25*2;一次类推......
第二步:求第十次反弹高度,也就是把第九次高度求出来,除以2,即为第十次的反弹高度。
代码如下:
#include <stdio.h> //引用头文件
main()
{
float i,h=100,s=100; //定义循环变量i;初始高度100,初始距离100;
for(i=1;i<=9;i++) //求第十次高度,共循环9次
{
h=h/2; //高度总是上次的一半
s=s+h*2; // 距离总是之前的加上这次高度的来回之和。
}
printf("总长度为:%f\n",s);
printf("第十次落地后弹起的高度是:%f\n",h/2);
}
结果如下: