欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

阶乘之和解题程序

发布时间:2025/3/15 编程问答 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://www.cnblogs.com/YYC-0304/p/9500257.html

总结

以上是生活随笔为你收集整理的阶乘之和解题程序的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。