/*
* 一球從100米高度自由落下,每次落地后反跳回原來高度的一半,再落下,
* 求它在第10次落地時(shí)共經(jīng)過多少米?第10次反彈多高?
*
*/
修改的地方都加粗了
public class Demo {
public static void main(String[] args){
//小球反彈后的高度
double height = 100;
//y用于記錄小球下落的高度
double y = 0;
//小球經(jīng)過的總路程
**double sum = 0;**
for(int i =1;i<=10;i++){
//記錄小球落下的高度
y = height ;
//小球每次反彈后的高度
height = (**1.0**/2)*height;
//因?yàn)榈?0次反彈的高度是不用加的
if(i<=9){
//小球的總路程
sum =y+height;
}
}
System.out.println("共經(jīng)過"+sum+"米");
System.out.println("第10次反彈的高度是:"+height+"米");
}
}
2 回答

慕勒3428872
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
y = height
每次循環(huán)都重置了 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
添加回答
舉報(bào)
0/150
提交
取消