洛谷 P2142 高精度減法
阿新 • • 發佈:2019-01-22
題目描述
高精度減法
輸入輸出格式
輸入格式:
兩個數(第二個可能比第一個大)
輸出格式:
結果(是負數要輸出負號)
輸入輸出樣例
輸入樣例#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.