不是VIP会员,不能显示答案

题目解答

题目:
正整数A的阶乘,数学中定义为:A!=1×2×3×......×A,如3!=1×2×3,现在输入一个正整数n(n<=50),要求计算出1~n的每一个整数的阶乘的高精度结果(即:结果为全部有效数字)。下面的程序中采用加法代替乘法的方法计算阶乘,如:3!=2!+2!2!。
输入格式:每行打印一个数的队乘
如:输入:n=3
输出:1!=1
2!=2
3!=6
Program test_2015_6;
Const max=80;
Var i,j,k,n,r:integer;
   a,b:array[1..max] of integer;
begin
  writeln('n=');readln(n);
  a[1]:=1;writeln('1!=1');
  for j:=1 to  n-1  do begin
    b:=a;
    for k:=1 to  j  do
      for i:=1 to max do
      begin
        r:= a[i]+b[j] ;
        if r>=10 then  a[i+1] :=a[i+1]+1;
        a[i]:=r mod 10;
      end; 
      k:=80;
      while  a[k]=0 do k:=k-1;
      write(j+1,'!=');
      for i:=k downto 1 do write(a[i]);
      writeln;
  end;
end.
考点:
分析:
解答:
评论:
老师: