Rust语言编程实例100题-020

2021-07-06  本文已影响0人  L我是小学生

Rust语言编程实例100题-020

题目:一球从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
上一篇下一篇

猜你喜欢

热点阅读