JAVA 大整數加法的實現

2021-07-24 16:39:25 字數 831 閱讀 4115

/**

* 整數加法

* * @param lv

* 左值

* @param rv

* 右值

* @param result

* 相加的結果

* @數值存放說明 數值的每一位作為棧的一項存放在棧中,從棧底到棧頂依次是數值的高位到低位

* @演算法描述 輸入的加數倒序存放在棧中(即棧頂是數的最低位,棧底是數的最高位)。 計算的時候,依次彈出棧中的資料,對每一位執行加操作。

* 若遇到進製,則將進製標誌carry設定為1,以在進行下一位計算的時候將其加上。 進製加結束後,將carry的值重置為0。

* 每次計算都會檢查進製標誌carry的值

*/void plus(stacklv, stackrv, stackresult)

result.push(sum);

// 在兩個加數的每一位都進行了計算後,判斷是否還有進製,若有則加到結果的最高位

// 為了在兩個加數字數(長度)不相等時能正確地計算,這個條件必需放在下面的兩個條件前面

} else if (lv.empty() && rv.empty()) else if (lv.empty())

result.push(sum);

// 同上面左值說明

} else if (rv.empty())

result.push(sum);

}} catch (exception e)

}}

棧的方式實現,主要注意進製的處理。

大整數加法實現

先貼 move num 實現將輸入資料移到陣列末尾 con num 實現將字元轉為數字 add 實現加法,進製操作 注意不列印前導0 include includevoid move num char num while j 0 void conv num char num void add cha...

大整數加法

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 處理多餘的棧...