procedure high_multiply(a,b:hp; var c:hp} |
var i,j,len:integer; |
begin |
fillchar(c,sizeof(c),0); |
for i:=1 to a[0] do |
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 10); |
c[i+j-1]:=c[i+j-1] mod 10; |
end; |
len:=a[0]+b[0]+1; |
while (len>1) and (c[len]=0) do dec(len); |
c[0]:=len; |
end; |