基本算法:
用一个数组为存储计算结果,每一项保存结果中的一位,将结果按从低到高位依次放入数组a[0]....a[n].
for i:=2 to n do
begin
carry:=0;
for j:=1 to digit do
begin
temp:=a[j-1]*i+carry;
a[j-1]:=temp mod 10;
carry:=temp div 10;
end;
while carry>0 do
begin
digit:=digit+1;
setLength(a,digit);
a[digit-1]:=carry mod 10;
carry:=carry div 10;
end;
end;
for k:=digit downto 1 do
str:=str+inttostr(a[k-1]);

浙公网安备 33010602011771号