超長正整數相加

2021-10-24 00:26:51 字數 1175 閱讀 2557

請設計乙個演算法完成兩個超長正整數的加法。

介面說明 :

輸入引數:

string addend:加數

string augend:被加數

返回值:加法結果

public string addlonginteger

(string addend, string augend)

輸入描述: 輸入兩個字串數字

輸出描述: 輸出相加後的結果,string型

【題目解析】:

本題是模擬加法運算。

【解題思路】:

加法運算,每一位的值等於當前對應位的兩數之和+進製。由於是加法,所以當前位的和最多是19(9 + 9 + 進製1),所以產生的進製最多為1。故

第一步:計算對應位的和,對應位相加 + 上一位的進製

第二步:更新當前位的值, 和 % 10 ,把值轉成字元(和 - 『0』)存入字元結果中

第三步:更新進製, 和 / 10, 然後計算下一位的值

最後一步:如果計算完之後,進製為1,說明最高位產生了進製,所以需要再加一位,才是最後的結果。結果產生之後,需要逆置,得到最終結果

#include

#include

#include

using

namespace std;

string addstrings

(string num1, string num2)

if(j >=0)

//當前為的最大值不大於10

result +=(

char

)(carry %10+

'0')

;//如果大於10,向上進一位

carry /=10

; i--

; j--;}

//相加完之後,如果還有進製,則再加1

if(carry ==1)

//整體逆置

reverse

(result.

begin()

, result.

end())

;return result;

}int

main()

return0;

}

超長正整數相加

請設計乙個演算法完成兩個超長正整數的加法。輸入引數 string addend 加數 string augend 被加數 返回值 加法結果 思路 兩個數相加,可先將兩個數長度對齊,短的用0補齊後再計算。兩個數相加的結果長度至多為較大的數長度加1。可以用乙個陣列來存放結果。public class m...

超長正整數相加 牛客

請設計乙個演算法完成兩個超長正整數的加法。介面說明 請設計乙個演算法完成兩個超長正整數的加法。輸入引數 string addend 加數 string augend 被加數 返回值 加法結果 public string addlonginteger string addend,string auge...

C 超長正整數運算

文字檔案1.txt和2.txt分別儲存超長正整數,然後讀取兩個數進行加法 減法 乘法運算,如下 using system using system.collections.generic using system.linq using system.text using system.io usin...