先给出代码:
program fac;
var
i,j,n,len: integer;
rad,c,r: longint;
buff: array[1..16000] of integer;
num: string[5];
begin
writeln('calculate n!');
write('n=?');
read(n);
rad:=10000;
len:=1;
buff[1]:=1;
for i:=1 to n do
begin
c:=0;
for j:= 1 to len do
begin
r := buff[j] * i +c;
buff[j] := r mod rad;
c := r div rad;
end;
if c>0 then
begin
len:=len+1;
buff[len]:=c;
end;
end;
write('n!=',buff[len]);
for i:=len-1 downto 1 do
begin
str(buff[i],num);
if length(num)<4 then
write(copy('0000',1,4-length(num)));
write(buff[i]);
end;
END.
program fac;
var
i,j,n,len: integer