/*
一个小球从任意高度自由落下,每次落地后反跳回原高度的一半再落下,求它在第任意次数落地时,一共经过了多少米?
*/
class 小球弹跳任意高度任意落地次数{
public static void main(String[] args) {
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("请输入初始落地高度:");
double 高度 = s.nextDouble();
System.out.print("请输入落地次数[正整数]:");
int 次数 = s.nextInt();
double 路程 = luCheng(高度,次数);
System.out.println("小球从" + 高度 + "高度落下,第" + 次数 + "次落地时,经过的路程是:" + 路程 + "米");
}
/**
* 一个小球从任意高度落下,经过任意次数弹跳落地时经过的路程
* @param h 任意高度
* @param n 任意次数
* @return 经过的路程
*/
public static double luCheng (double h,int n){
double 高度 = h;
double 行程 = h;
for (int i = 1; i < n; i++) {
高度 /=2;
行程 += 2 * 高度;
}
return 行程;
}
}