大整數加法

2021-07-15 15:45:50 字數 877 閱讀 9288

實現兩個大整數相加的方法很簡單,就是模擬小學生列豎式做加法,從個位開始逐位相加,超過或達到10則進製,程式中使用變數carry儲存1或0。然後逐位相加,相加的結果直接存放在result中。要注意處理進製。

stl**如下:

#include 

#include

using

namespace

std;

int main()

//兩個輸入長度不同時,將超出的部分直接賦值給結果

while(iter1!=l1.end())

while(iter2!=l2.end())

//列印

cout

<< "輸入1:";

for(list

::reverse_iterator iter1=l1.rbegin();

iter1 != l1.rend();

++iter1)

cout

<< endl << "輸入2:";

for(list

::reverse_iterator iter2=l2.rbegin();

iter2 != l2.rend();

++iter2)

cout

<< endl << "結果:";

list

::reverse_iterator iter_res;

for(iter_res=result.rbegin();

iter_res != result.rend();

++iter_res)

cout

<< endl;

system("pause");

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