两个正整数的位数不超过500位
代码:
var a,b,c:array [0..500] of longint; len,temp,i,j,k:longint; flag:boolean; s,s1,s2:ansistring; begin readln(s); temp:=1; for i:=1 to length(s) do if s[i]<>' ' then s1:=s1+s[i] else break; for j:=i+1 to length(s) do s2:=s2+s[j]; i:=length(s1); j:=length(s2); if i>j then begin len:=i; flag:=true; end else begin len:=j; flag:=false; end; for k:=len downto 1 do begin if i>0 then begin a[k]:=ord(s1[i])-48; dec(i); end else a[k]:=0; if j>0 then begin b[k]:=ord(s2[j])-48; dec(j); end else b[k]:=0; if flag then c[k]:=a[k]-b[k] else c[k]:=b[k]-a[k]; end; for k:=len downto 1 do if c[k]<0 then begin c[k]:=c[k]+10; dec(c[k-1]); end; if not flag then write('-'); for k:=1 to len do if c[k]=0 then inc(temp) else break; for k:=temp to len do write(c[k]); end.
