14 lines
305 B
Crystal
14 lines
305 B
Crystal
def fib (n : Int64)
|
|
raise "only positive numbers allowed" if n < 0
|
|
# it needs to be declared beforehand to be able to call it
|
|
# from inside itself
|
|
fib1 = uninitialized Int64 -> Int64
|
|
fib1 = -> (n : Int64) {
|
|
if n < 2
|
|
n
|
|
else
|
|
fib1[n - 1] + fib1[n - 2]
|
|
end
|
|
}
|
|
fib1[n]
|
|
end
|