【程序10】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
package com.share.test01_10;
/**
* 【程序10】题目:<br>
* 一球从100米高度自由落下,每次落地后反跳回原高度的一半;<br>
* 再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
*
* @author brx
*/
public class Test10 {
public static void main(String[] args) {
test(100, 3);
}
/**
* 思路:<br>
* 将思路理清楚,落地共经过的路程要想仔细,上下的路程都要算,<br>
* 所以要加两次,第一次的初始值要设置正确
*
* @param n:从n米高的地方落下
* @param m:第m次落地
*/
public static void test(double n, int m) {
double sum = 0;
double tem = n;
double tem1 = 0;
for (int i = 0; i < m; i++) {
sum += tem1 + tem;
tem = tem / 2;
tem1 = tem;
}
System.out.println("从" + n + "米高的落下第" + m + "次落地时共经过" + sum + "米第" + m + "次反弹了" + tem + "米");
}
}