源码如下
如有错误,请指正
import java.util.Scanner;
//一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,
//求它在第10次落地时,共经过多少米?第10次反弹多高?
public class Test10_ball {
public static void main(String[] args) {
float last=100;//初始高度为100
float sum=100;//初始高度为100
System.out.print("请输入弹起的次数:");
Scanner input = new Scanner(System.in);
int num = input.nextInt();
for(int i=0;i<num;i++){
last =(float)last/2;//每次弹起减一半高度
sum += last*2*1.0;//sum=sum+last*2全路程,配合之后在打印时减去的最后一次高度即为路程
}
System.out.println("第"+num+"次弹起的高度是"+last);
System.out.println("一共经过的路程为"+(sum-last));//由于弹起一次到最高点,路程为这一次的一半加上之前的路程
//所以需要减去最后一次弹起的高度
}
}
效果如下:
第一次弹起:
第十次弹起: