p1040.pas
来自「www.vijos.cn上一些习题的参考源码」· PAS 代码 · 共 69 行
PAS
69 行
program multiply;
type
numtype=packed array[0..10000] of longint;
st=ansistring;
var
sa,sb:st;
a,b:numtype;
c:packed array[0..20000] of longint;
procedure hp_mul;
var
i,j:longint;
begin
for i:=1 to a[0] do begin
for j:=1 to b[0] do begin
inc(c[i+j-1],a[i]*b[j]);
inc(c[i+j],c[i+j-1] div 10000);
c[i+j-1]:=c[i+j-1] mod 10000;
end;
end;
c[0]:=a[0]+b[0]+1;
while(c[0]>1) and (c[c[0]]=0) do
dec(c[0]);
end;
procedure trans(s:st;var a:numtype);
var
k,code:integer;
s1:st;
begin
k:=length(s);
a[0]:=0;
repeat
inc(a[0]);
s1:=copy(s,k-3,4);
val(s1,a[a[0]],code);
s:=copy(s,1,k-4);
k:=k-4;
until k<=0;
end;
procedure print;
var
i:longint;
begin
write(c[c[0]]);
for i:=c[0]-1downto 1 do begin
if c[i]<1000 then write('0');
if c[i]<100 then write('0');
if c[i]<10 then write('0');
write(c[i]);
end;
writeln;
end;
begin
readln(sa);
readln(sb);
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
fillchar(c,sizeof(c),0);
trans(sa,a);
trans(sb,b);
hp_mul;
print;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?