// harmonic value of N = (1 + 1/2 + 1/3 + ... 1/N)
fn get_harmonic_value(n: usize) -> f64 {
let mut hv = 0.0;
for i in 1..=n {
hv += 1.0 / i as f64;
}
hv
}
fn get_harmonic_value_recursion(n: usize) -> f64 {
if n == 1 {
1.0
} else {
1.0 / n as f64 + get_harmonic_value_recursion(n - 1)
}
}
fn main() {
let n = 6;
println!("Harmonic value: {}", get_harmonic_value(n));
println!("Harmonic value: {}", get_harmonic_value_recursion(n));
}
/*
run:
Harmonic value: 2.4499999999999997
Harmonic value: 2.4499999999999997
*/