阅读背景:

计算大数阶乘--Pascal版

来源:互联网 

先给出代码:

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



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: