黑马程序员技术交流社区

标题: 浅谈java基础 [打印本页]

作者: h___    时间: 2018-12-14 18:09
标题: 浅谈java基础
本帖最后由 h___ 于 2018-12-14 18:13 编辑

先和大家分享一道题目:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,
共经过多少米?第10次反弹多高?
刚开始看见这道题目,我一般用数学解题思路思考。
先是100/2=50米,然后想办法让他循环10次,难点在于100的值需要自动更换成上一次升起的高度。
然后就是 反弹高度=反弹高度/2,== num =  high * 2;
因为java中的=号与数学中的等号不同。java中值的是赋值,把等号左边的值赋给右边,这样就刚好解决了第一个
难点。循环10次,这个可以看一下公式,本人比较喜欢使用for循环。
然后第二个难点在于共经过多少米。需要获取每次变化的高度相加,
等于num = num + high * 2。加了一个i变量,这样增加程序的灵活性。
public class Test {
    public static void main(String[] args) {
        double num = 100;// 高度100米
        double high = num / 2; //第一次反弹反弹高度
        int i=3;
        for ( int i1 = 1;i1< i;i1 ++){
        num = num + high * 2; //第i次落地经过多少米
        high = high / 2;//第i次反弹的高度
    }
       System.out.println("第"+i+"次落地经过" + num+"米");
       System.out.println("第"+i+"次反弹" + high+"米" );
}
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2