Pagini recente » Cod sursa (job #3185452) | Cod sursa (job #1081950) | Cod sursa (job #2915471) | Cod sursa (job #2210962) | Cod sursa (job #307291)
Cod sursa(job #307291)
type vector=array[1..100000] of 0..9;
var v:vector;
p,n,l,w:longint;
i,j:longint;
f,g:text;
procedure inm;
var i,r,r2:longint;
begin
r:=0;
for i:=1 to l do begin
r2:=(v[i]*2+r) div 10;
v[i]:=(v[i]*2+r) mod 10;
r:=r2;
end;
if r<>0 then begin inc(l); v[l]:=r; end;
end;
procedure inmult(nr:longint);
var a:array[1..11] of 0..9;
v2:vector;
l2,r,r2:longint;
begin
l2:=0;
while nr<>0 do begin
inc(l2);
a[l2]:=nr mod 10;
nr:=nr div 10;
end;
fillchar(v2,l+l2+2,0);
for i:=1 to l2 do begin
r:=0;
for j:=1 to l do begin
r2:=(v2[j+i-1]+(a[i]*v[j])+r) div 10;
v2[j+i-1]:=(v2[j+i-1]+(a[i]*v[j])+r) mod 10;
r:=r2;
end;
if r<>0 then v2[i+l]:=r;
end;
if v2[l+l2]<>0 then l:=l+l2
else l:=l+l2-1;
v:=v2;
end;
begin
assign(f,'patrate2.in'); reset(f);
assign(g,'patrate2.out'); rewrite(g);
read(f,n);
p:=1;
v[1]:=1;
l:=1;
{for i:=1 to n*n do p:=p*2;
for i:=1 to n do p:=p*i;}
for i:=1 to n do
for j:=1 to n do inm;
for w:=1 to n do inmult(w);
for i:=l downto 1 do write(g,v[i]);
close(g);
end.