阶乘之和
題意
用高精度計(jì)算出S=1!+2!+3!+…+n!
分析
用高精度來做
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.
轉(zhuǎn)載于:https://www.cnblogs.com/YYC-0304/p/9500182.html
總結(jié)
- 上一篇: 小玉在游泳
- 下一篇: 数字三角形:顺推法(二维数组)