高精度減法入門詳解

2021-08-07 03:51:04 字數 698 閱讀 1211

輸入兩個正整數,求它們的差。

【演算法分析】

類似加法(如果是沒有學過加法的同學,參照部落格高精度加法入門詳解)

同樣可以用豎式求減法。在做減法運算時,需要注意的是:被減數必須比減數大,同時需要處理借位。高精度減法的參考程式:

#include

#include

#include

using

namespace

std;

int main()

lena=strlen(n1); lenb=strlen(n2);

for (i=0;i<=lena-1;i++) a[lena-i]=int(n1[i]-'0'); //被減數放入a陣列

for (i=0;i<=lenb-1;i++) b[lenb-i]=int(n2[i]-'0'); //減數放入b陣列

i=1;

while (i<=lena||i<=lenb)

c[i]=a[i]-b[i]; //對應位相減

i++;

}lenc=i;

while ((c[lenc]==0)&&(lenc>1)) lenc--; //最高位的0不輸出  

for (i=lenc;i>=1;i--) cout

cout

0;}

高精度減法

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