高精度減法

2022-05-19 19:13:13 字數 1189 閱讀 5558

題目描述

高精度減法,求\(a\)

\(-\)

\(b\)。\(a\)

\(,\)

\(b\)都不超過\(240\)位.

輸入兩個非負整數 每行乙個

輸出乙個數

樣例輸入

33333333333333333333333333333333333333333

22222222222222222222222222222222222222222

輸出

11111111111111111111111111111111111111111
提示

資料並不保證a>b,如果差是負數要輸出\('\)

\(-\)

\('\)號; 另外差的高位上的\(0\)要去掉。

先用字串讀入,再存入陣列,進行高精減,但是借位要單獨判斷

用\(l\)表示是否借位,用if語句來實現(詳見**)

還有乙個要單判:\(a\)

\(>\)

\(b\)

解決:先輸出\('\)

\(-\)

\('\),再交換\(a\)

\(,\)

\(b\),最後進行高精

var

t,s1,s2:string;

l,i,j:longint;

p:boolean;

a,b,c:array[1..240] of integer;

begin

readln(s1);

readln(s2);

if (length(s1)=0 then//如果不用借位

begin

c[i]:=a[i]-b[i]-l;

l:=0;//l=0

endelse//要借位

begin

c[i]:=a[i]-b[i]+10-l;

l:=1;//l=1

end;

if p then write('-');//如果是負數,則輸出'-'號

i:=240;

while (c[i]=0)and(i>1) do dec(i);

for j:=i downto 1 do write(c[j]);//高精輸出

end.

高精度減法

題目描述 高精度減法 輸入輸出格式 輸入格式 兩個數 第二個可能比第乙個大 輸出格式 結果 是負數要輸出負號 輸入輸出樣例 輸入樣例 1 2 1 輸出樣例 1 1說明 這也沒什麼好說的,沒什麼特別的要求,就是乙個普普通通的高精減。程式如下 const max 500 var s integer a,...

高精度減法

description 輸入兩個整數a和b,輸出這兩個整數的差。a和b都不超過100位。input 輸入包括兩行,第一行為乙個非負整數a 被減數 第二行為乙個非負整數b 減數 兩個整數都不超過100位,兩數的最高位都不是0。output 輸出一行,表示a b的值。sample input 99999...

高精度減法?!

高精減 嗯輸入就不再講一遍了。儲存和之前是一樣的,倒序儲存。減法需要借位,所以解決減法借位是關鍵。方法如下 if a i a i 1 向上一位借一做十 a i 10 c i a i b i 逐位相減這樣就可以處理借位問題。當然,在減法中還有乙個需要處理的問題,當然這個問題很重要 減法中有被減數和減數...