Meanwhile in reality.
// prog.rs
pub fn fib(n: i64) -> i64 {
if n <= 1 {
return n
}
return fib(n-1) + fib(n-2)
}
fn main() {
println!("{}", fib(45))
}
// prog.c
#include <stdio.h>
long long fib(long long n) {
if (n <= 1) {
return n;
}
return fib(n-1) + fib(n-2);
}
int main(void) {
printf("%lld\n", fib(45));
}
$ rustc -O prog.rs -o prog
$ time ./prog
1134903170
./prog 4,23s user 0,00s system 99% cpu 4,267 total
$ gcc -O2 prog.c -o prog
$ time ./prog
1134903170
./prog 2,45s user 0,02s system 99% cpu 2,478 total