Cod sursa(job #600467)

Utilizator Buzu_Tudor_RoCont vechi Buzu_Tudor_Ro Data 1 iulie 2011 21:39:13
Problema Al k-lea termen Fibonacci Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.94 kb
Program Fibonacci;
const limit=1000000;
type vector = array[1..limit] of integer;
var fi,fo : text;
    n : longint;
    i,k : longint;
    a,b : vector;

Procedure suma(x,y : vector);
var rest,nr,i1 : longint;
begin
      rest:=0;
      for i1:=limit downto k do begin
                                nr:=x[i1]+y[i1]+rest;
                                rest:=nr div 10;
                                y[i1]:=nr mod 10;
                                end;
      if rest=0 then k:=i1
                else begin
                     k:=k-1;
                     y[k]:=rest;
                     end;
      a:=b;
      b:=y;
end;


begin
     assign(fi,'kfib.in');
     reset(fi);
     read(fi,n);
     close(fi);

     assign(fo,'kfib.out');
     rewrite(fo);
     a[limit]:=1;
     b[limit]:=1;
     k:=limit;

     for i:=3 to n do suma(a,b);

     for i:=k to limit do write(fo,b[i]);

     close(fo);
end.