Cod sursa(job #248785)

Utilizator andreivFMI - vacaroiu andrei andreiv Data 26 ianuarie 2009 20:32:41
Problema Fractii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.79 kb
program fibo;
var nrc,nra,nrb,n,nr:longint;
    s:string;
    a,b,c:array[1..15000] of byte;
    g:text;


procedure citire;
var f:text;
begin
assign(f,'fib.in');
reset(F);
read(f,n);
close(f);
end;

procedure adun;
var i,r,min:longint;
begin
if nra>nrb then min:=nra else min:=nrb;r:=0;
for i:=1 to min do
 begin
 c[i]:=a[i]+b[i]+r;
 r:=c[i] div 10;
 c[i]:=c[i] mod 10;
 end;
if r<>0 then
begin nrc:=min+1; c[nrc]:=r; end else nrc:=min;
end;

begin
{citire;}n:=10000000;
assign(g,'fib.out');
rewrite(g);
nr:=2;a[1]:=1;b[1]:=1;nra:=1;nrb:=1;nrc:=0;
while 1>0 do
begin
adun;
{if a+b>maxlongint then begin writeln(a,' '); exit end;}
if nr+nrc>=n then begin writeln(c[nrc-(n-nr)+1]); exit end else nr:=nr+nrc;
a:=b;nra:=nrb;
b:=c;nrb:=nrc;
end;
close(g);
end.