Rust recursive functions: Fibonacci



examples/functions/fibonacci/src/main.rs
fn main() {
    let n = 15;
    let fibo = recursive_fibonacci(n);
    println!("The {n}th Fibonacci number is {fibo}");
    let fibo = fibonacci(n);
    println!("The {n}th Fibonacci number is {fibo}");
}

fn recursive_fibonacci(n:i32) -> i32 {
    if n == 1 || n == 2 {
        return 1;
    }
    recursive_fibonacci(n-1) + recursive_fibonacci(n-2)
}



fn fibonacci(n:i32) -> i32 {
    let mut fib = vec![1, 1];
    if n == 1 || n == 2 {
        return 1;
    }
    for _ in 3..=n {
        fib.push(fib[fib.len()-1] + fib[fib.len()-2]);
    }
    fib[fib.len()-1]
}