Skip to content

Instantly share code, notes, and snippets.

@fastzen
Created February 25, 2017 00:01
Show Gist options
  • Save fastzen/dce6fad1dcc164f3ba565c6237ced896 to your computer and use it in GitHub Desktop.
Save fastzen/dce6fad1dcc164f3ba565c6237ced896 to your computer and use it in GitHub Desktop.
FutureLearn - recursion
-module(recursion).
-export([fac/1,fib/1,pieces/1,multipieces/2]).
fac(0) -> 1;
fac(N) when N>0 -> fac(N-1)*N.
fib(0) -> 0;
fib(1) -> 1;
fib(N) ->
fib(N-1)+fib(N-2).
% fib(4) = fib(4-1) + fib(4-2)
% fib(4) = fib(3) + fib(2)
% fib(4) = 2 + 1
% fib(4) = 3
pieces(0) -> 1;
pieces(1) -> 2;
pieces(N) -> pieces(N-1) + N.
multipieces(0,_) -> 1;
multipieces(X,1) -> X+1;
multipieces(X,N) ->
multipieces(X-1,N) + multipieces(X-1,N-1).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment