高精度減法

2021-10-13 18:37:43 字數 1387 閱讀 8042

#include

using

namespace std;

bool

campare

(vector<

int>

&num1, vector<

int>

&num2)

else}}

//此處就是a b 兩個數相等了

return

true;}

vector<

int>

sub(vector<

int>

&num1, vector<

int>

&num2)

else

}else

//當前對應位數不能減過

else}}

return result;

}int

main

(int argc,

char

** ar**)

for(

int i = sznum2.

size()

-1; i >=

0; i--

) vector<

int>result;

//始終是要保證大數-小數if(

campare

(num1,num2)

)else

int nlen = result.

size()

-1;//前面得0都不列印

while

(nlen !=-1

&&0== result[nlen]

) nlen--

;for

(int i = nlen; i >=

0; i--

)//這是兩個數相等的情況if(

-1== nlen)

return0;

}

vector<

int>

sub(vector<

int>

&num1, vector<

int>

&num2)

//若ntemp >= 0 則還是ntemp本身

//若ntemp < 0 則需要借一位 + 10

result.

push_back

((ntemp +10)

%10);

if(ntemp <0)

else

//去掉前導0 比如1000-999 結果是0001 去掉前面0

while

(result.

size()

>1&&

0== result.

back()

)}return result;

}

高精度減法

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