阶乘之和解题程序

    xiaoxiao2021-12-14  19

    这题其实就是高精乘

    const  maxn=1000; var sum,a:array[0..maxn]of longint; n:longint; procedure init;//读入 begin     readln(n);     a[maxn]:=1; end; procedure cf(k:longint);//乘法 var i,s,g:longint; begin     g:=0;     for i:=maxn downto 1 do     begin         s:=a[i]*k+g;         a[i]:=s mod 10;         g:=s div 10;     end; end; procedure add;//加法 var g,i,s:longint; begin     g:=0;     for i:=maxn downto 1 do     begin         s:=a[i]+sum[i]+g;         sum[i]:=s mod 10;         g:=s div 10;     end; end; procedure main; var i:longint; begin     for i:=2 to n do     begin         cf(i);         add;     end; end; procedure print;//输出 var i,j:longint; begin     i:=1;     while (i<=maxn)and(sum[i]=0) do inc(i);     for j:=i to maxn do     write(sum[j]); end; begin     sum[maxn]:=1;     init;     main;     print; end.

    转载请注明原文地址: https://ju.6miu.com/read-968172.html

    最新回复(0)