程序书算法精题–JS版
- 一球从100米高度自由落下, 每次落地后反跳回原高度的一半; 在落下, 求它在第10次落地时, 共经过多少米? 第10次反弹多高?
分析
第一次 – 落地:100, 反弹:100 × 0.5^1
第二次 – 100 × 0.5^1, 100 × 0.5^2
,…,
第十次 – 100 × 0.5^9, 100 × 0.5^10
源码
// 经过的距离
let s = 100;
// 小球高度
let h = 0;
for (let i = 1; i <= 10; i++) {
h = 100 * Math.pow(0.5, i);
s += h * 2;
if (i == 10) {
s -= h;
}
}
console.log('它在第10次落地时, 共经过' + s + '米');
console.log('第10次反弹' + h + '米高');
console