1. 程式人生 > >洛谷 P2142 高精度減法

洛谷 P2142 高精度減法

題目描述

高精度減法

輸入輸出格式

輸入格式:
兩個數(第二個可能比第一個大)

輸出格式:
結果(是負數要輸出負號)

輸入輸出樣例

輸入樣例#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.