您的位置:首页 > 其它

高精度乘法

2015-05-17 11:53 357 查看
方便调用,写成了函数

function gjdcf(s,ss:ansistring):ansistring;
var
d,temp:ansistring;
a,b,c:array[1..1000000]of longint;
q,i,j:longint;
begin
readln(s);
readln(ss);
for i:=1 to length(s) do
val(s[length(s)-i+1],a[i]);
for i:=1 to length(ss) do
val(ss[length(ss)-i+1],b[i]);
for i:=1 to length(s) do
for j:=1 to length(ss) do
c[i+j-1]:=c[i+j-1]+a[i]*b[j];
for i:=1 to length(s)+length(ss) do
if c[i]>=10 then begin c[i+1]:=c[i+1]+c[i] div 10;c[i]:=c[i]mod 10;end;
if c[length(s)+length(ss)]<>0 then q:=length(s)+length(ss) else q:=length(s)+length(ss)-1;
for i:=q downto 1 do
begin
str(c[i],temp);
d:=d+temp;
end;
exit(d);
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  高精度