Rust语言编程例子 第020题:落球反弹

Rust语言编程题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

扩展:第N次反弹多高呢?

程序分析:小球第一次落地单独分析,第一次落地时,反弹50米,总共经过100米。小球从第二次开始,经过的高度需要 * 2。反弹高度每次 / 2即可。

输出格式:小球第 {} 次落地时,反弹 {} 米,总共经过 {} 米

知识点:循环 浮点数

fn main() {
    // 100米的高度
    const START_HEIGHT: f64 = 100.0;
    // 第 N 次落地
    const N: i32 = 10;

    // 第1次落地反弹的高度
    let mut height = START_HEIGHT / 2.0;
    // 总共经过多少米
    let mut sum = 100.0;

    // 从第二次开始
    for _ in 2..=N {
        sum += height * 2.0;
        height /= 2.0;
    }

    println!("小球第 {} 次落地时,反弹 {} 米,总共经过 {} 米", N, height, sum);
}

程序执行结果:

小球第 10 次落地时,反弹 0.09765625 米,总共经过 299.609375 米

Process finished with exit code 0

Rust语言编程题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下,的一半零一个。到第1 ...