我需要理解答案的为什么🧐

img

int height=100 //开始的高度
int total=0 //总共移动的距离
for(int i=0,i++,i<+10){ //反弹的次数
total=total+height+height/2 //每次距离为落下和反弹上来
height=height/2 // 高度每次反弹减半
println(total) //最终总距离
println(height) //第10次高度
}

const calc = (defaultHeight, turn) => {
const onceTravel = (defaultHeight, sum = 0, n) => {
const endHeight = defaultHeight / 2
sum += defaultHeight + endHeight
if (n < turn) {
return sum + onceTravel(endHeight, sum, n + 1)
} else {
return sum
}
}
return onceTravel(defaultHeight, 0, 1)
}

img

你题目的解答代码如下:

    var h = 100;//高度
    var sum = h;//跳n次共经过sum米
    for (var i = 1; i < 10; i++)
    {
        h /= 2;
        sum += h*2;
    }
    
    console.log("共经过"+sum+"米");
    console.log("反弹高度"+h+"米");

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img