主题:[讨论]n!的位数
无所不能
[专家分:270] 发布于 2008-11-05 23:59:00
求n!的位数,n》1000000
回复列表 (共15个回复)
11 楼
DYF213 [专家分:90] 发布于 2008-11-13 19:23:00
用高精度
var
t:array[0..10000] of integer;
i,j,n,lt:longint;
begin
readln(n);
t[1]:=1;lt:=1;
for i:=2 to n do
begin
for j:=1 to lt do
begin
t[j]:=t[j]*i;
t[j]:=t[j]+t[j-1] div 10;
t[j-1]:=t[j-1] mod 10;
end;
while t[lt]>9 do
begin
lt:=lt+1;
t[lt]:=t[lt]+t[lt-1] div 10;
t[lt-1]:=t[lt-1] mod 10;
end;
end;
writeln(lt);
end.
还可以优化,自己想想吧,
12 楼
wangzhongqi96 [专家分:40] 发布于 2008-11-13 22:18:00
哥哥,你曾给我解释解释过freepascal的文件路径设置,我很感谢你,我觉得这题应用高精度计算出一位打一位,我试过,用酷睿2双核,一秒可以搞定
13 楼
wangzhongqi96 [专家分:40] 发布于 2008-11-13 22:20:00
数不能定义成double型的,它效率很低,绝对超时
14 楼
无所不能 [专家分:270] 发布于 2008-11-14 22:04:00
知道了 ,谢谢,明天比赛
祝你有好运
15 楼
小王子的爱 [专家分:10] 发布于 2008-11-15 10:25:00
友谊帮顶
俺不会
我来回复