Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
12
Task/Fibonacci-sequence/Prolog/fibonacci-sequence-11.pro
Normal file
12
Task/Fibonacci-sequence/Prolog/fibonacci-sequence-11.pro
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
% John Devou: 26-Nov-2021
|
||||
% Efficient program to calculate n-th Fibonacci number.
|
||||
% Works fast for n ≤ 1 000 000 000.
|
||||
|
||||
b(0,Bs,Bs).
|
||||
b(N,Bs,Res):- N > 0, B is mod(N,2), M is div(N,2), b(M,[B|Bs],Res).
|
||||
|
||||
f([],A,_,_,A).
|
||||
f([X|Xs],A,B,C,Res):- AA is A^2, BB is B^2, A_ is 2*BB-3*AA-C, B_ is AA+BB,
|
||||
(X =:= 1 -> T is A_+B_, f(Xs,B_,T,-2,Res); f(Xs,A_,B_,2,Res)).
|
||||
|
||||
fib(N,F):- b(N,[],Bs), f(Bs,0,1,2,F), !.
|
||||
Loading…
Add table
Add a link
Reference in a new issue