Skip to content

Latest commit

 

History

History
57 lines (42 loc) · 1.4 KB

002-fibonacci.livemd

File metadata and controls

57 lines (42 loc) · 1.4 KB

2 - Fibonacci

LA SUCESIÓN DE FIBONACCI

Enunciado

Escribe un programa que imprima los 50 primeros números de la sucesión de Fibonacci empezando en 0. La serie Fibonacci se compone por una sucesión de números en la que el siguiente siempre es la suma de los dos anteriores.

0, 1, 1, 2, 3, 5, 8, 13...

Solución

defmodule Solution do
  # See https://gist.github.com/kyanny/2026028
  def fib(a, _, 0) do
    a
  end

  def fib(a, b, n) do
    fib(b, a + b, n - 1)
  end

  def run(iterations) do
    iterations
    |> Enum.map(fn index ->
      fib(0, 1, index)
    end)
  end
end
{:module, Solution, <<70, 79, 82, 49, 0, 0, 7, ...>>, {:run, 1}}
Solution.run(0..50)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946,
 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578,
 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141, 267914296,
 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976, 7778742049, ...]