高精: { Author:wzx961008 Problem:UVa 10106-Product Verdict:Accepted Language:PASCAL Run Time:0.020s Submission Date:2011-02-09 11:43:13 } var a,b:string; function HighMultiply(s1,s2:string):ansistring; var a,b,c:array[1..1000]of integer; lena,lenb,lenc,i,j,x:integer; begin fillchar(a,sizeof(a),0); fillchar(b,sizeof(b),0); fillchar(c,sizeof(c),0); HighMultiply:=''; lena:=length(s1); lenb:=length(s2); for i:=1 to lena do a[lena-i+1]:=ord(s1[i])-ord('0'); for i:=1 to lenb do b[lenb-i+1]:=ord(s2[i])-ord('0'); for i:=1 to lena do begin x:=0; for j:=1 to lenb do begin x:=a[i]*b[j]+x div 10+c[i+j-1]; c[i+j-1]:=x mod 10; end; c[i+j]:=x div 10; end; lenc:=i+j; while (c[lenc]=0) and (lenc>1) do dec(lenc); for i:=lenc downto 1 do HighMultiply:=HighMultiply+chr(c[i]+48); end; begin while not eof do begin readln(a); readln(b); writeln(HighMultiply(a,b)); end; end.