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
网友评论