java 一个球从100米高度下落,每次下落反弹原来高度的一半,如此反复,求第10次落地时共经历了多少米?第10次反弹多高?
这道题可以使用循环语句来实现。
首先, 定义反弹高度和反弹次数为初始值,定义路程经过的总长度为 0。
然后,使用 for 循环来计算第 10 次落地时共经历了多少米,以及第 10 次反弹的高度。
在循环中,每一次反弹都会有一个长度为当前高度和反弹高度之和的路程。同时,每次反弹,反弹高度都会减半,最终反弹 10 次后为初始高度的 1/1024 。所以,总路程就是每一次反弹的路程之和,共有 2 * 10 次。最后,输出总路程和第 10 次反弹的高度即可。
下面是代码实现:
public class BouncingBall {
public static void main(String[] args) {
double height = 100; // 初始高度
double totalDistance = 0; // 总路程
double bounceHeight = 0; // 反弹高度
int times = 10; // 反弹次数
for (int i = 1; i <= times; i++) {
totalDistance += height; // 下落路程
bounceHeight = height / 2; // 反弹高度
height = bounceHeight; // 下次落地的高度
totalDistance += height; // 反弹路程
}
System.out.println("第10次落地时共经历了 " + totalDistance + " 米");
System.out.println("第10次反弹高度为 " + bounceHeight + " 米");
}
}