簡單高精度減法

2021-09-29 22:03:07 字數 1109 閱讀 7426

高精度減法

兩個整數正整數a,b(第二個可能比第乙個大)

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

20%資料a,b在long long範圍內

100%資料0 < a,b<=1010086

字串可以直接比大小,例如:str1>str2,if(str1==str2)。也可以給字串直接賦值,例如:str1=「123」;str2=str1;

#include

#include

#define max 10087

using

namespace std;

void

init

(char

*str,

int*a,

int len)

//初始化字元陣列轉化為int陣列

}void

sub(

int*a,

int*b,

int len,

int on)

//a-b減法,on控制正負

}while

(a[len-1]

==0)//去零

len--;if

(on==

1) cout<<

"-";

for(

int i=len-

1;i>=

0;i--

) cout<;//輸出

}int

main()

,b[max]

=,c[max]=;

cin>>str1>>str2;

int la=

strlen

(str1)

,lb=

strlen

(str2)

;init

(str1,a,la)

;//字元陣列轉整形陣列

init

(str2,b,lb)

;int len=0;

if(la>lb)

sub(a,b,la,0)

;//相減

else

if(lasub(b,a,lb,1)

;else

return0;

}

高精度減法

題目描述 高精度減法 輸入輸出格式 輸入格式 兩個數 第二個可能比第乙個大 輸出格式 結果 是負數要輸出負號 輸入輸出樣例 輸入樣例 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 逐位相減這樣就可以處理借位問題。當然,在減法中還有乙個需要處理的問題,當然這個問題很重要 減法中有被減數和減數...