问题:
一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,
求它在第n次落地时,共经过多少米?第n次反弹多高?
代码:
package java1;
import java.util.Scanner;
public class bollHeight {
public static void main(String args[]) {
int n;
double countMeter = 0; //第n次落地时总共经过的距离
double HeightMeter=calHeight(10); //第n次跳起的高度
System.out.println("请输入第几次:");
Scanner in=new Scanner(System.in);
n=in.nextInt();
for(int i=1;i<=10;i++) {
countMeter+=calMeter(i);
}
System.out.println("经过总长度为:"+countMeter);
System.out.println("弹起高度为:"+HeightMeter);
}
//计算第n次落下前后经过的距离
private static double calMeter(int i) {
if(i==1)
return 100;
else
return 2*calHeight(i); //每次进过的距离是两倍的跳起的高度
}
//计算第n次跳起的告诉
private static double calHeight(int i) {
if(i==1)
return 100;
else
return calHeight(i-1)/2; //每次跳起的高度是上一次跳起高度的一半
}
}
结果: