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

2021-06-07 06:54:51 字數 974 閱讀 6195

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

步驟: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)

while(!s1.empty())   //處理多餘的棧1

while(!s2.empty())   //處理多餘的棧2

if(tmp)        //處理多餘的進製

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

while(!s3.empty())    //直接pop出棧3,即正好的從高位到低位的結果

{cout

stacks2;

stacks3;

char c1[100];

char c2[100];

int main(void)

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

cin>>c1;

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

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

方法 這裡用了資料結構棧,實際上棧更方便實現高精度加法。步驟 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 本題考察的是高精度計算...