这是算阶乘,然后乘2的一个程序 var i,j,n:longint; c:array[1..1500] of longint; procedure jw; // 这是高精度进位用的函数 var i,k:longint; begin for i:=1 to 1499 do if c[i]>9 then begin k:=c[i] div 10; c[i]:=c[i] mod 10; c[i+1]:=c[i+1]+k; end; end; begin assign(input,'gl.in');reset(input); //头两行和最后一行是文件操作,不用管 assign(output,'gl.out');rewrite(output); readln(n); c[1]:=1; //设定初始值 for i:=2 to n do begin //循环 for j:=1 to 1500 do c[j]:=c[j]*i; //所有位数全部乘以当前阶乘乘到的数 jw; // 进位 end; for i:=1 to 1500 do c[i]:=c[i]*2; // 全部乘2 jw; //进位 for i:=1500 downto 1 do if c[i]>0 then break; //寻找数的最高位 for j:=i downto 1 do write(c[j]); //从最高位开始向下输出 close(input);close(output); end. 基础高精度每次操作后都要进位,有改良版的,但那就比较复杂了。