i,j,n,w:longint; a:array[1..10000] of integer;procedure fact(k:longint);var x,i:longint;begin x:=0; for i:=1 to w do begin a[i]:=a[i]*k+x; x:=a[i] div 10; a[i]:=a[i] mod 10; end; while x>0 do begin w:=w+1; a[w]:=x mod 10; x:=x div 10; end;end;begin a[1]:=1; w:=1; readln(n); for i:=1 to n do fact(i); for j:=w downto 1 do write(a[j]); writeln;end.这个程序可以做1000以下的阶乘,最大能做到多少没试过