封装
double h = 100;
double s = 100;
public double hight(int a) {
if(a == 1) {
return h / 2;
}else {
return hight(--a)/2;
}
}
public double allHight(int a) {
if(a == 1) {
return 100;
}else {
s += allHight(--a)/2 + h/2;
return s;
}
入口`
Test01 t = new Test01();
System.out.println(t.hight(10));
System.out.println(t.allHight(10));
题目
;一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
思路
模拟球落地的过程,当落地一次时反弹高度是原来一半, 而最初高度是100米,所以当一次第一次落地是
h/2米,之后每次都在上一次高度基础上/2,
而求总路程时,由于第一次落地比较特殊,因为落地前没有上升所以与后面有上升的不同,我是将其分成
两部分来理解,第一部分只计算落地,第二部分只计算上升,上升比落地少一次计算,从h/2米开始计算
即可,如此便可算出总路程