diff options
Diffstat (limited to 'src/code/2/fib_itr.exs')
-rw-r--r-- | src/code/2/fib_itr.exs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/code/2/fib_itr.exs b/src/code/2/fib_itr.exs index 2eafcee..affd347 100644 --- a/src/code/2/fib_itr.exs +++ b/src/code/2/fib_itr.exs @@ -1,14 +1,13 @@ defmodule Fib do def seq(0), do: 0 def seq(1), do: 1 - def seq(n) when n > 1, do: compute_seq(n, 1, [0, 1]) + def seq(n) when n > 1, do: compute_seq(n, 1, [1, 0]) defp compute_seq(n, i, acc) when n == i do - Enum.at(acc, length(acc) - 1) + hd(acc) end defp compute_seq(n, i, acc) do - len = length(acc) - compute_seq(n, i + 1, acc++[Enum.at(acc, len-1) + Enum.at(acc, len-2)]) + compute_seq(n, i+1, [Enum.at(acc, 0) + Enum.at(acc, 1) | acc]) end end |