-- Leo's gemini proxy

-- Connecting to gemini.mingmengtou.org:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=en-GB

neil in gemini space

fibonacci rust exercise


here so i can find it later. working through the rust book exercises.


2021-05-16 - rust programming language online book for learning rust.

2021-05-16 - summary and exercises related to common programming concepts.


i went with an iteration rather than recursion: two different versions. I prefer the second version myself.


// fibonacci
// iterative solution with sequence starting at 0
//
fn fibonacci( seq: u64 ) -> u64 {
    let mut last_last = 1;
    let mut last = 1;
    let mut result = 1;

    if seq == 1 {
        return 0
    } else if seq == 2 {
        return 1
    } else {
        for _i in 3..seq {
            result = last_last + last;
            last_last = last;
            last = result;
        }
    }
    result
}

fn fibonacci2( seq: u64 ) -> u64 {
    let mut last_last = 1;
    let mut last = 1;
    let mut result = 1;

    match seq {
        1 => result = 0,
        2 => result = 1,
        _ => {
            for _i in 3..seq {
                result = last_last + last;
                last_last = last;
                last = result;
            }
        }
    }
    result
}

and to test it:


// fibonacci
//
    for fib_num in 1..=30 {
        println!("fibonacci {} : {}:", fib_num, fibonacci(fib_num));
    };
//
// fibonacci2
//
    for fib_num in 1..=40 {
        println!("fibonacci {} : {}:", fib_num, fibonacci2(fib_num));
    };


does what it says on the tin!



---

return to gemini.mingmengtou.org index page.

---

neil.gemini@mingmengtou.org

content licensed CC-BY-SA 4.0 unless stated.

creative commons licence information.

-- Response ended

-- Page fetched on Thu May 2 10:01:57 2024