java Una pelota cae desde una altura de 100 metros. Cada vez que cae rebota la mitad de su altura original. Esto se repite. ¿Cuántos metros recorrió cuando aterrizó por décima vez? ¿A qué altura está el décimo rally?

java Una pelota cae desde una altura de 100 metros. Cada vez que cae rebota la mitad de su altura original. Esto se repite. ¿Cuántos metros recorrió cuando aterrizó por décima vez? ¿A qué altura está el décimo rally?

Esta pregunta se puede resolver utilizando declaraciones de bucle.

Primero, defina la altura del rebote y el número de rebotes como valores iniciales, y defina la longitud total del viaje como 0.

Luego, utilice un bucle for para calcular el número total de metros recorridos cuando se realizó el décimo aterrizaje y la altura del décimo rebote.

En el bucle, cada rebote tendrá una longitud igual a la suma de la altura actual y la altura del rebote. Al mismo tiempo, cada vez que rebote, la altura del rebote se reducirá a la mitad y finalmente será 1/1024 de la altura inicial después de rebotar 10 veces. Por tanto, la distancia total es la suma de las distancias de cada rebote, un total de 2*10 veces. Finalmente, simplemente genera la distancia total y la altura del décimo rebote.

La siguiente es la implementación del código:

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

Supongo que te gusta

Origin blog.csdn.net/ck3345143/article/details/131282971
Recomendado
Clasificación