diff options
Diffstat (limited to 'l/fibo.lang')
-rw-r--r-- | l/fibo.lang | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/l/fibo.lang b/l/fibo.lang new file mode 100644 index 0000000..e1a7a4a --- /dev/null +++ b/l/fibo.lang @@ -0,0 +1,31 @@ +func printnum(int n) { + if (n == 0) {putc('0'); return;} + if (n < 0) {putc('-'); n = -n;} + while (n > 0) { + putc('0' + char(n % 10)); + n = n / 10; + } +} + +func int fibo(int n) { + int a := 0; + int b := 1; + int i := 0; + while (i < n) { + int c := a + b; + a = b; + b = c; + i = i + 1; + } + return b; +} + +func int main() { + int i := 0; + while (i <= 20) { + printnum(fibo(i)); + putc('\n'); + i = i + 1; + } + return 0; +} |