猿问

Java 这道小题的错误在哪

/*
 * 一球从100米高度自由落下,每次落地后反跳回原来高度的一半,再落下,
 *    求它在第10次落地时共经过多少米?第10次反弹多高?
 * 
 */
修改的地方都加粗了

public class Demo {
    public static void main(String[] args){
        //小球反弹后的高度
        double height = 100;
        //y用于记录小球下落的高度
        double y = 0;
        //小球经过的总路程
        **double sum = 0;**
        
        for(int  i =1;i<=10;i++){
            //记录小球落下的高度
            y = height ;
            //小球每次反弹后的高度
            height = (**1.0**/2)*height;
            //因为第10次反弹的高度是不用加的
            if(i<=9){
                //小球的总路程
                sum =y+height;        
            }
        }
        System.out.println("共经过"+sum+"米");
        System.out.println("第10次反弹的高度是:"+height+"米");
    }
}
慕仙森
浏览 666回答 2
2回答

慕勒3428872

y = height 每次循环都重置了 y 值,哪里是在累加…… JavaScript 代码算法示意 var height = 100 var sum = height; for (var i = 2; i <= 10; i++) { sum += height; height /= 2 } // sum == 299.609375,即总路程 // 最后一次是第10次弹起再下落的总长,所以再除以2才是弹起的高度 height /= 2; // 0.09765625
随时随地看视频慕课网APP

相关分类

Java
我要回答