正整数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.