问题:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
思路:
/**
* 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
* @param height 高度
* @param sum 经过的总距离
* @param number 落下的次数
*/
public void test(Double height,Double sum,Integer number){
for (int i = 0; i < number; i++) {
sum = sum + height * 3 / 2;
System.out.print("第" + (i + 1) + "次反弹至最高点的累积距离:" + sum + "米-----");
height = height / 2;
System.out.println("第" + (i + 1) + "次反弹的高度:" + height +"米");
//最后一次落地经过的距离 = 最后一次反弹至最高点的累积距离 - 最后一次反弹的高度;
if(i == (number - 1)){
sum = sum - height;
}
}
System.out.println("第" + number +"次落地时经过的总路程:" + sum + "米");
}
运行结果: