大整數加法

2021-06-08 05:28:24 字數 1225 閱讀 7080

方法:這裡用了資料結構棧,實際上棧更方便實現高精度加法。

步驟:1、第乙個資料加數按輸入順序(高位到低位)入棧1。此時棧頂為最低位

2、‍第二個資料加數按輸入順序(高位到低位)入棧2。此時棧頂為最低位

3、將棧1、棧2均pop出棧頂做加法,並考慮進製,結果入棧3,這時棧3正好是低位入棧。

4、處理多餘的棧1、棧2。

5、直接pop出棧3,即正好的從高位到低位的結果。

完整的實現**如下:

[cpp]view plain

copy

#include "iostream"

#include "stack"

using

namespace

std;  

stack

>s1;  

stack

>s2;  

stack

>s3;  

char

c1[100];  

char

c2[100];  

intmain(

void

)    

for(

inti=0;i

inttmp=0;  

while

(!s1.empty() && !s2.empty())  

while

(!s1.empty())   

//處理多餘的棧1

while

(!s2.empty())   

//處理多餘的棧2

if(tmp)        

//處理多餘的進製

printf("兩個數相加的結果為:"

);  

while

(!s3.empty())    

//直接pop出棧3,即正好的從高位到低位的結果

cout

);  

return

0;  

}  

執行效果圖如下:

**: }

if(tmp)

printf("the result length = %d\n", s3.size());

printf("the add result = ");

while(!s3.empty())

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

大整數加法

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

大整數加法

2981 大整數加法 檢視 提交 統計 提示 提問 總時間限制 1000ms 記憶體限制 65536kb 描述求兩個不超過200位的非負整數的和。輸入有兩行,每行是乙個不超過200位的非負整數,可能有多餘的前導0。輸出一行,即相加後的結果。結果裡不能有多餘的前導0,即如果結果是342,那麼就不能輸出...