永发信息网

给定源程序的功能是:计算s=1! 2! …… k!。

答案:2  悬赏:50  手机版
解决时间 2021-03-30 13:11
给定源程序的功能是:计算s=1! 2! …… k!。
最佳答案
这需要用到高精度乘法和加法。
以下是Pascal语言实现的代码:
type
ta=record
c:array[1..100]of integer;
l:integer;
end;
var
s:array[1..50]of ta;
i,n,j:integer;
begin
readln(n);
s[1].c[1]:=1;
s[1].l:=1;
for i:=2 to n do
begin
for j:=1 to s[i-1].l do
s[i].c[j]:=s[i-1].c[j]*i;
j:=1;
while (s[i].c[j]>0)or(j<=s[i-1].l) do
begin
if s[i].c[j]>=10 then
begin
inc(s[i].c[j+1],s[i].c[j] div 10);
s[i].c[j]:=s[i].c[j] mod 10;
end;
inc(j);
end;
dec(j);
s[i].l:=j;
end;
for i:=2 to n do
begin
for j:=1 to s[i-1].l do
begin
inc(s[i].c[j],s[i-1].c[j]);
if s[i].c[j]>=10 then
begin
inc(s[i].c[j+1]);
s[i].c[j]:=s[i].c[j] mod 10;
end;
end;
if s[i].c[s[i].l+1]>0 then inc(s[i].l);
end;
for i:=s[n].l downto 1 do
write(s[n].c[i]);
writeln;
readln()
end.
样例输入:
10
样例输出:
4037913
如有错误,请多原谅。
全部回答
svg.append("path")
.datum(topojson.mesh(uk, uk.objects.subunits, function(a, b) { return a === b && a.id === "IRL"; }))
.attr("d", path)
.attr("class", "subunit-boundary IRL").
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
刚刚买的糯化翡翠观音.请教下可以值多少
死木坐命,身弱财多,无枭印,缺水,八字走枭
好看的裙子那么多,你知道选哪一条才显瘦还时
节食一般要几天才能瘦一公斤
从赵村到吉祥村坐什么公交车
马报怎样看
大众途观 进气支管阀门卡住怎么处理
身怕不动。下一句是什么?
杨家将评书有四郎探母详细情节的是哪版
拜托哥哥姐姐帮我找下关于爱国的活关于环保的
PS 已知一个颜色,能否知道它的RGB值
儒林外史第十回的鉴赏
3岁半的狗狗掉牙,怎么回事?
上联,,一部经典半杯香茗,足以富可敌国贵比
请问韭菜秋天管理要点?
推荐资讯
渝A88888,黑牌 是谁的车
团伙打架,是不是要全抓住,才判形
想学习道教算命算卦
怎样卸载文件
韩国KS400G高防服务器防护如何,真的打不死吗
彩虹大浴场怎么样
求教海运费以及海运附加费主要有哪些?
I love you, but you just do not love me 什
(100-3x)➗2=8的方程
虚怀若谷天下藏什么意下藏
UG4.0的撤销和反撤销在哪里啊,不要快捷键,
默写填空。(10分,每空1分)(1)子曰:三人
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?