How to check if a sequence of numbers is a Harmonic progression (reciprocals Arithmetic progression) in Rust

1 Answer

0 votes
fn is_harmonic_progression(arr: &[f64]) -> i32 {
    let size = arr.len();
    if size == 1 {
        return 1;
    }

    let difference = 1.0 / arr[1] - 1.0 / arr[0];

    for i in 2..size {
        if (1.0 / arr[i]) - (1.0 / arr[i - 1]) != difference {
            return 0;
        }
    }

    1
}

fn main() {
    let arr = [1.0 / 5.0, 1.0 / 10.0, 1.0 / 15.0, 1.0 / 20.0, 1.0 / 25.0];
    
    println!("{}", if is_harmonic_progression(&arr) == 1 { "Yes" } else { "No" });
}



  
/*
run:

Yes

*/

 



answered Sep 22, 2024 by avibootz
...