任意長度的高精度大整數加法

2021-05-27 15:13:26 字數 650 閱讀 7296

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

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

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

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

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

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

完整的實現**如下:

#include "iostream"

#include "stack"

using namespace std;

stacks1;

stacks2;

stacks3;

char c1[100];

char c2[100];

int main(void)

{ printf("請輸入第乙個加數:");

cin>>c1;

printf("請輸入第二個加數:");

cin>>c2;

int len1=strlen(c1);

int len2=strlen(c2);

for(int i=0;i

執行效果圖如下:

任意長度的高精度大整數加法

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

任意長度的高精度大整數加法

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

高精度 大整數加法

求兩個不超過200位的非負整數的和。有兩行,每行是乙個不超過200位的非負整數,可能有多餘的前導0。一行,即相加後的結果。結果裡不能有多餘的前導0,即如果結果是342,那麼就不能輸出為0342。22222222222222222222 33333333333333333333 本題考察的是高精度計算...