高精度減法-洛谷 2142
阿新 • • 發佈:2019-01-04
題目描述
高精度減法
輸入輸出格式
輸入格式:兩個數(第二個可能比第一個大)
輸出格式:結果(是負數要輸出負號)
輸入輸出樣例
樣例1輸入:2
1
樣例一輸出:
1
題解:
按老師教過的高精度減法的方法做就行了。
程式碼:
const
max=1000000;var
a,b,c:array[1..max] 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.