一个球的问题
一个球从100米自由落下,每次落地反弹回,原高度的一半。在落下。
求他在第10次落地是,总共经过了多少米。第10次反弹了多高。
#include <stdio.h>
void main()
{
int i;
float t,b=100;
for(i=1;i <=10;i++)
{
b=b/2;
t+=b;
}
printf( "%f\t%f\t ",b,t);
}
这样写的~~不是对不对~~
[解决办法]
#include <stdio.h>
void main()
{
int i;
float t = 100,b=100;
for(i=1;i <=10;i++)
{
b=b/2;
t+=b;
}
t -= b;
printf( "%f\t%f\t ",b,t);
}
[解决办法]
这只是一个等比数列
100 + 100*0.5 + 100*0.5*0.5 + 。。。
第十次落地经过多少米 = 100*(1-0.5^10)/(1-0.5)
第十次反弹多高 = 100*(0.5^10)
#include <math.h>
void main()
{
b = 100*pow(0.5,10);
t = 100*(1-pow(0.5,10))/(1-0.5);
}