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; }