39 lines
625 B
Plaintext
39 lines
625 B
Plaintext
fn rec_fib(n: int) -> int {
|
|
if n <= 1 {
|
|
return n;
|
|
}
|
|
|
|
return rec_fib(n - 1) + rec_fib(n - 2);
|
|
}
|
|
|
|
fn loop_fib(n: int) -> int {
|
|
var a: int = 0;
|
|
var b: int = 1;
|
|
var i: int = 0;
|
|
|
|
while i < n {
|
|
var c: int = a + b;
|
|
a = b;
|
|
b = c;
|
|
i += 1;
|
|
}
|
|
|
|
return a;
|
|
}
|
|
|
|
fn main() -> int {
|
|
var n: int = 20;
|
|
var rec_result: int = rec_fib(n);
|
|
var loop_result: int = loop_fib(n);
|
|
printf("Fibonacci of %d via recursion is %d\n", n, rec_result);
|
|
printf("Fibonacci of %d via loop is %d\n", n, loop_result);
|
|
|
|
if rec_result == loop_result {
|
|
printf("Results match\n");
|
|
} else {
|
|
printf("Results do not match\n");
|
|
}
|
|
|
|
return 0;
|
|
}
|