大整數加法

2021-09-10 14:47:24 字數 753 閱讀 3652

大數相加其思路就是模擬加法計算,遵從加法計算原則,逢10進1。

計算時將大整數的每一位用陣列表示,用陣列代替大整數計算。如:

1234+8766

4 3 2 1

6 6 7 8

0 0 0 0 1

結果:10000

注意:正如以上所示,兩個大整數相加時要考慮最高位進製的情況

將字串轉換為陣列時別忘記減 『0』

#include #include using namespace std;

int main()

; int b[1001] = ;

string a, b;

cin >> a >> b;

int len1, len2;

len1 = a.length();

len2 = b.length();

for (int i = len1 - 1, k = 0; i != -1; i--)//逆序存放

for (int i = len2 - 1, k = 0; i != -1; i--)

int up = 0, max = len1 >= len2 ? len1 : len2;

for (int i = 0; i < max; i++)//模擬加法

if (up > 0)//考慮最高位進製的情況

for (int i = max-1; i >= 0; i--)

return 0;

}

大整數加法

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...