fib(0,0).

fib(1,1).

fib(N,R) :-
	N>=2,
	N1 is N-1,
	fib(N1,R1),
	N2 is N-2,
	fib(N2,R2),
	R is R1+R2.

fib_iteratif_aux(_X,Y,1,Y).

fib_iteratif_aux(X,Y,N,R) :-
	N>=2,
	NX is Y,
	NY is X+Y,
	N1 is N-1,
	fib_iteratif_aux(0,1,N,R).

fib_efficace(0,0).
fib_efficace(1,1).

fib_efficace(N,R) :-
	N>=2,
	fib_iteratif_aux(0,1,N,R).

