作业帮 > 综合 > 作业

pascal编程:阶乘

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 09:11:13
pascal编程:阶乘
题目描述用高精度计算出S=1!+2!+3!+…+n!(n≤50) 其中“!”表示阶乘,例如:=5*4*3*2*1.输入格式一个正整数N.输出格式一个正整数S,表示计算结果.样例输入 3 样例输出 9
这题需要用到高精度加法以及高精度乘法【参考程序】const maxn=100;var len,n,i,j,h,k:longint;          a,b:array[1..maxn]of longint;   begin   readln(n);    a[1]:=1;    for i:=1 to n do    begin     k:=0;      for j:=1 to maxn do      begin       h:=a[j]*i+k;        a[j]:=h mod 10;        k:=h div 10;       end;      k:=0;      for j:=1 to maxn do      begin       h:=b[j]+a[j]+k;        b[j]:=h mod 10;        k:=h div 10;       end;     end;    len:=maxn;    while b[len]=0 do   len:=len-1;    for j:=len downto 1 do    write(b[j]);   end.