高精度減法

2021-07-26 11:48:59 字數 1506 閱讀 7837

題目描述

高精度減法

輸入輸出格式

輸入格式:

兩個數(第二個可能比第乙個大)

輸出格式:

結果(是負數要輸出負號)

輸入輸出樣例

輸入樣例#1:

2 1

輸出樣例#1:

1說明

這也沒什麼好說的,沒什麼特別的要求,就是乙個普普通通的高精減。

程式如下:

const

max=500;

var s:integer;

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

f:boolean;

procedure

init;

var i:integer;

s,s1,s2:string;

l1,l2,l:integer;

begin

f:=true;

readln(s1);

readln(s2);

l1:=length(s1);

l2:=length(s2);

if (l1or (l1=l2) and (s1then

begin

s:=s1; s1:=s2; s2:=s;

l:=l1; l1:=l2; l2:=l;

f:=false;

end;

for i:=1

to l1 do

a[max-l1+i]:=ord(s1[i])-48;

for i:=1

to l2 do

b[max-l2+i]:=ord(s2[i])-48;

end;

procedure

main;

var i,g:integer;

begin

g:=0;

for i:=max downto1do

if a[i]>=b[i]+g then

begin

a[i]:=a[i]-b[i]-g;

g:=0;

endelse

begin

a[i]:=10+a[i]-b[i]-g;

g:=1;

end;

end;

procedure

print;

var i,j:integer;

begin

ifnot f then

write('-');

i:=1;

while (a[i]=0)and(ido inc(i);

for j:=i to max do

write(a[j]);

end;

begin

init;

main;

print;

end.

高精度減法

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 逐位相減這樣就可以處理借位問題。當然,在減法中還有乙個需要處理的問題,當然這個問題很重要 減法中有被減數和減數...

高精度減法

1 高精度減法 模板 高精度減法 模板題 acwing 792.高精度減法 比較a是否大於等於b bool cmp vectora,vectorb vectorsub vectora,vectorb while c.size 1 c.back 0 c.pop back return c acwing...