Advertisement
Guest User

Fibonacci

a guest
Feb 8th, 2016
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Erlang 0.54 KB | None | 0 0
  1. -module(tut).
  2. -export([fib/1]).
  3. -export([fib2/2]).
  4.  
  5. %% Dåliga
  6. fib ( 0 ) ->
  7.     0;
  8. fib ( 1 ) ->
  9.     1;
  10. fib ( N ) ->
  11.     fib( N - 1 ) + fib( N - 2 ).
  12.  
  13.    
  14. %% Med dynamisk programmering
  15.  
  16. fib2 ( 0, Memo ) ->
  17.     [0];
  18. fib2 ( 1, Memo ) ->
  19.     [0, 1];
  20. fib2 ( N, Memo ) ->
  21.     case length(Memo) =< 2 of
  22.         true -> lists:nth(N, Memo)
  23.     end,
  24.  
  25.     case length(Memo) < N - 2 of
  26.         false -> fib2 ( N - 2, Memo)
  27.     end,
  28.    
  29.     case length(Memo) < N - 1 of
  30.         false -> fib2 ( N - 1, Memo)
  31.     end,
  32.    
  33.     lists:append([Memo, [lists:nth(N - 1, Memo) + lists:nth(N - 2, Memo)]].
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement