How to find the harmonic value of N (1 + 1/2 + 1/3 + ... 1/N) in Rust

1 Answer

0 votes
// 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

*/

 



answered Nov 2, 2024 by avibootz
...