LATGACH - Lát gạch

Tác giả: flashmt

Ngôn ngữ: Pascal

const base=1000000000;
      dg=9;
type bignum=array[0..5] of longint;
var n,i,t:longint;
    f:array[1..100] of bignum;

procedure plus(var a,b,c:bignum);
var i,mem:longint;
begin
     a[0]:=b[0]; mem:=0;
     for i:=1 to a[0] do
     begin
          a[i]:=b[i]+c[i]+mem;
          if a[i]>=base then
          begin
                a[i]:=a[i]-base;
                mem:=1
          end
          else mem:=0;
     end;
     if mem=1 then
     begin
        inc(a[0]);
        a[a[0]]:=mem;
     end;
end;

procedure wf(a:bignum);
var i,j,l:longint;    s:string;
begin
     for i:=a[0] downto 1 do
     begin
        if i<a[0] then
        begin
                str(a[i],s);
                l:=length(s);
                for j:=l+1 to dg do write(0);
        end;
        write(a[i]);
     end;
     writeln;
end;

begin
        f[1,0]:=1; f[1,1]:=1;
        f[2,0]:=1; f[2,1]:=2;
        for i:=3 to 100 do plus(f[i],f[i-1],f[i-2]);
        read(t);
        for i:=1 to t do
        begin
                read(n);
                wf(f[n]);
        end;
end.

Download