编写java程序【问题描述】 已知一球从高空落下时,每次落地后反弹至原高度的四分之一再落下。编写一程序,从键盘输入整数n和m,求该球从n米的高空落下后,第m次落地时共经过的路程以及第m次落地后反弹的高度,并输出结果。 【输入形式】 从键盘输入整数n和m,以空格隔开。 【输出形式】 输出两行: 第一行输出总路程,保留小数点后两位; 第二行输出第m次落地后反弹的高度,保留小数点后两位。 【输入样例】 40 3 【输出样例】 65.00 0.63
时间: 2024-03-04 17:49:45 浏览: 55
以下是Java程序的实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
double height = n;
double distance = n;
for (int i = 1; i <= m; i++) {
distance += height;
height /= 4;
if (i < m) {
distance += height;
}
}
System.out.printf("%.2f\n", distance);
System.out.printf("%.2f", height);
}
}
```
该程序首先从键盘读入球的初始高度 `n` 和落地次数 `m`。接下来,程序使用循环计算球第 `m` 次落地时,球经过的总路程以及球第 `m` 次落地后反弹的高度。循环中,程序先计算球落地时经过的路程,再计算球反弹后的高度,最后判断是否为最后一次落地,若不是则再加上球反弹时经过的路程。最后,程序使用 `System.out.printf()` 方法输出结果。
阅读全文