summaryrefslogtreecommitdiff
path: root/rust-book/fibonacci/src/main.rs
blob: 0b4f22bad5e9ea3311a26004ac32d137dc44ae66 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use std::env;

fn fib(n: u32) -> u32 {

    if n == 0 || n == 1 { 
        return n;
    }
    else {
        return fib(n - 1) + fib(n - 2);
    }

}

fn main() {
    // grab iterations
    let iterations: u32 = match env::args().nth(1) {
        Some(s) => {
            let attempt: u32 = s.trim().parse()
                .expect("error: could not parse iterations");
            attempt
        },
        None => {
            eprintln!("error: usage: fibonacci [iterations]");
            return;
        },
    };

    for i in 0..iterations {
        println!("{}", fib(i));
    }
}