/*
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
分析:j假设球是从地面向上抛出100米再自由下落,
球第一次落地,行程100*2m,反弹50m, 50*4。
第二次落地,又加行程50*2 m,反弹25m, 25*4。
第三次落地,又加行程25*2 m,反弹12.5m,12.5*4。
第十次时,又加行程0.5^(10-1) *100*2 m,反弹0.5^10 *100 m,最后总行程要减100m。
如果是求第n次落地的行程,和第m次落地后的反弹,就要把行程和反弹分开成两个函数写。这里合起来写了。
*/
class Demo
{
public static void main(String [] args)
{
double high=100; //总高度
double sum=0; //路程
double tan=0; //弹起高度
double i=0.5;
int time=3;
getR(high,sum,tan,i,time);
}
public static void getR(double high,double sum,double tan,double i,int time)
{
for (int x=0;x<time;x++)
{
tan=high*i; //每次弹起的高度。
sum+=tan*4; //根据规律得出的结论。
high=tan; //反弹高度即下落高度,所以高度值要改变。
}
System.out.println("第"+time+"次落地的行程是:"+(sum-100)+"米!");
System.out.println("第"+time+"次落地后反弹高度是:"+tan+"米!");
}
}
|