java 一个球从100米高度下落,每次下落反弹原来高度的一半,如此反复,求第10次落地时共经历了多少米?第10次反弹多高?

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 + " 米");
    }
}

猜你喜欢

转载自blog.csdn.net/ck3345143/article/details/131282971
今日推荐