酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

题目描述 一个球从某高度 h h 落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。 求球到最终停在地面为止,经过的总路程,结果保留 8 位小数。 (当 h < = 0.00001 h<=0.00001时,认为球已落地) 输入格式 输入一个整数 h h ,表示球的初始高度。( 1 ≤ h ≤ 100 1≤h≤100)。 输出格式 一行一个保留小数点后八位的小数,表示球到最终停在地面为止经过的总路程。 注意:数据类型用 double 。 样例1 输入 20 输出 59.99998093

以下是用 Java 实现的代码: ```java import java.util.Scanner; public class BallDrop { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int h = scanner.nextInt(); // 输入球的初始高度 double totalDistance = 0; // 总路程 while (h > 0.00001) { // 当高度大于设定的极小值时继续循环 totalDistance += h; // 加上下落的高度 h /= 2; // 高度减半 totalDistance += h; // 加上反弹的高度 } System.out.printf("%.8f", totalDistance); // 输出保留 8 位小数的总路程 } } ``` 额外需要注意的逻辑点: 1. 输入的高度值需要在有效范围内,即 1 到 100 之间。 2. 循环的结束条件要确保能准确判断球已落地。 3. 输出格式要严格按照保留 8 位小数的要求。 [2024-12-01 23:08:33 | AI写代码神器 | 250点数解答]

相关提问