% Author:
% Date: 03/11/2010
% Fibonacci

fibo(0,0).

fibo(1,1).



% fibo(N,F) :-
%           N >=2,
%           N1 is N - 1,
%           fibo(N1,F1),
%           N2 is N - 2,
%           fibo(N2,F2),
%           F is F1 + F2.

fibo(N,F) :-
          N >=2,
          fib_aux(N,0,1,F).

fib_aux(1,X,Y,Y).
          
fib_aux(N,X,Y,F) :-
          N > 1,
          N1 is N - 1,
          Y1 is X + Y,
          fib_aux(N1,Y,Y1,F).
