大整數加法計算

2022-07-15 03:21:12 字數 981 閱讀 6540

普通數字的運算,我們可以直接運用已有型別int, long, long long等等計算,但要是數字非常大,這些型別是遠遠裝不下的。

故而很多情況下需要我們自己來設定大整數運算,本篇記錄的是大整數的加法運算的方法。

對於加法運算,第乙個方法是模擬手算。先來看看手算的步驟:

手算的時候,我們會先把個位相加,有進製則向前進一位,然後計算下一位,重複此步驟。若兩個數的位數不同,計算時我們會把位數長的放在上面,位數短的放在下面。短位的數加完後,長位的數則和0相加。

實現加法計算的思路很簡單,首先把數字都當作字串對待,因為字串是可以根據記憶體無限長的。在c語言中我們可以用char陣列來表示,c++可以用string。然後我們需要再定義乙個儲存的結果字串,它的長度可以初步設定為較長數字的長度。

實現**:

#include #include std::string add(std::string a, std::string b)

std::string result(a.length(), 0); //初步設定result長度為較長字元長度

b.insert(0, a.length() - b.length(), '0'); //較短的字串前面補零,方便計算

int carry = 0; //進製

for (int i = a.length() - 1; i >= 0; i--)

//若進製不為0,還要在前面補上進製

if (carry != 0)

return result;

}int main()

現在我們可以輕鬆計算超大整數的加法運算了。

大整數加法

include include include include define debug void plus char char char int is valid char void reverse char int main int argc,char argv up loop 0 strcpy...

大整數加法

方法 這裡用了資料結構棧,實際上棧更方便實現高精度加法。步驟 1 第乙個資料加數按輸入順序 高位到低位 入棧1。此時棧頂為最低位 2 第二個資料加數按輸入順序 高位到低位 入棧2。此時棧頂為最低位 3 將棧1 棧2均pop出棧頂做加法,並考慮進製,結果入棧3,這時棧3正好是低位入棧。4 處理多餘的棧...

大整數加法

include include include define max len 200 int an1 max len 10 int an2 max len 10 char szline1 max len 10 char szline2 max len 10 int main bool bstarto...