这个就是数学问题,公式列出来,代码很简单,感觉我写的有点繁琐了,不知是否有更简单的
- import java.util.Scanner;
- public class Falling {
- public static void main(String[] args) {
- //键盘录入想获取的小球落地次数
- Scanner sc=new Scanner(System.in);
- System.out.println("请输入小球的落地次数:");
- int count=sc.nextInt();
- //建立数组存放每次小球落地后反弹高度
- double [] high=new double[count+1];
- //第一次落地经历路程为单程,首次高度为100米
- high[0]=100;
- double sum=high[0];
- high[1]=0.5*high[0];
- //从第二次落地开始用循环计算每次弹起高度,并累加路程
- for(int x=2;x<high.length;x++){
- high[x]=0.5*high[x-1];
- sum+=2*high[x-1];
- }
- System.out.println("小球第"+count+"次落地,后弹起高度:"+high[count]);
- System.out.println("所经历路程:"+sum+"米");
- }
- }
复制代码 |