Pagini recente » Cod sursa (job #1231996) | Cod sursa (job #2939577) | Cod sursa (job #2256077) | Cod sursa (job #557022) | Cod sursa (job #429214)
Cod sursa(job #429214)
const f:array[1..9] of byte = (1,1,2,3,5,8,13,21,34);
modd = 666013;
var be,ki:text;
n:qword;
function fib(n:qword):qword;
var np2m1,np2:qword;
begin
if n < 10 then fib:=f[n]
else
begin
if odd(n) then
begin
np2:= fib(n div 2);
np2m1:= fib((n div 2)-1);
fib := np2m1 * (np2m1 + np2) + np2 * (2*np2 + np2m1);
end
else
begin
np2:= fib(n div 2);
np2m1:= fib((n div 2)-1);
fib := np2 * ( 2* np2m1 + np2 );
end;
end;
end;
begin
assign(be,'kfib.in');
reset(be);
assign(ki,'kfib.out');
rewrite(ki);
readln(be,n);
writeln(ki,fib(n));
close(ki);
end.