Fibonacci sequence: Difference between revisions

Add Fib functions for Crystal lang
(Add Fib functions for Crystal lang)
Line 3,020:
 
<pre>0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181</pre>
 
=={{header|Crystal}}==
 
===Recursive===
<lang ruby>def fib(n)
n < 2 ? n : fib(n - 1) + fib(n - 2)
end</lang>
 
===Tail Recursive===
<lang ruby>def fibTailRecursive(n, prevFib = 0, fib = 1)
n == 0 ? prevFib : fibTailRecursive(n - 1, fib, prevFib + fib)
end</lang>
 
===Analytic===
<lang ruby>def fibBinet(n)
(((5 ** 0.5 + 1) / 2) ** n / 5 ** 0.5).round.to_i
end</lang>
 
=={{header|D}}==
Anonymous user