| 1 | pub fn main() void { |
| 2 | assert(fib(0) == 0); |
| 3 | assert(fib(1) == 1); |
| 4 | assert(fib(2) == 1); |
| 5 | assert(fib(3) == 2); |
| 6 | assert(fib(10) == 55); |
| 7 | assert(fib(20) == 6765); |
| 8 | } |
| 9 | |
| 10 | fn fib(n: u32) u32 { |
| 11 | if (n < 2) { |
| 12 | return n; |
| 13 | } else { |
| 14 | return fib(n - 2) + fib(n - 1); |
| 15 | } |
| 16 | } |
| 17 | |
| 18 | fn assert(ok: bool) void { |
| 19 | if (!ok) unreachable; |
| 20 | } |
| 21 | |
| 22 | // run |
| 23 | // target=x86_64-linux,x86_64-macos,wasm32-wasi |
| 24 | // |