题目描述
高精度减法
输入输出格式
输入格式:
两个数(第二个可能比第一个大)
输出格式:
结果(是负数要输出负号)
输入输出样例
输入样例#1:
2
1
输出样例#1:
1
说明
无
高精度减法:
1.按位相减,依次进位。
2.若a>b,则输出负号并且交换位置,变成b-a。
var
a,b,c:array [1..500] of integer;
n,n1,n2:string;
lena,lenb,lenc,i:integer;
begin
readln(n1);
readln(n2);
if (length(n1)<length(n2)) or (length(n1)=length(n2)) and (n1<n2) then
begin
n:=n1; n1:=n2; n2:=n;
write('-');
end;
lena:=length(n1); lenb:=length(n2);
for i:=1 to lena do a[lena-i+1]:=ord(n1[i])-ord('0');
for i:=1 to lenb do b[lenb-i+1]:=ord(n2[i])-ord('0');
i:=1;
while i<=lena do
begin
if a[i]<b[i] then
begin
a[i]:=a[i]+10;
a[i+1]:=a[i+1]-1;
end;
c[i]:=a[i]-b[i];
i:=i+1;
end;
lenc:=i;
while (c[lenc]=0) and (lenc>1) do dec(lenc);
for i:=lenc downto 1 do write(c[i]);
end.