1.球的高度和走过的路程?

java算法题题目

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

思路:第一次反弹高度100/2 第二次再/2 那就好说了 for10次 每次/2

代码如下:

public class java1 {
   public static void main(String[] args) {
       //先分析
       //第一次反弹高度100/2 第二次再/2 那就好说了 for10次 每次/2
       int high = 100;
       for(int index = 1;index<=10;index++){
           high= high/2;
           System.out.println("第"+index+"次反弹的高度为: "+high);
       }
   }
}

先运行一下看看结果:

m0mb21ug.png

啊 0? 哦对 有他喵的小数 得浮点类型
double high = 100;

修改之后运行如下
m0mb5ln0.png

然后是走过的路程

        /*
            第一次落地经过高度 100
            第二次落地经过高度 100+50+50
            第三次落地经过高度 100+50+50+25+25
            第四次落地经过高度 100+50+50+25+25+12.5+12.5
            明白了  除了第一次 其他的都是之前走过的路程+2个弹起的高度
        */

核心代码如下:

        double high = 100;
        double sum = 100; //第一次落地经过 100
        for(int index = 1;index<=10;index++){
            high= high/2;
            sum = sum +high+high; //从2开始 每次+2个high
            System.out.println("第"+index+"次反弹的高度为: "+high);
            System.out.println("第"+(index+1)+"次落地走过的距离为: "+sum);
        }

然后看下输出结果:

m0mcq3v2.png

完美……

打赏
评论区
头像