請設計乙個演算法完成兩個超長正整數的加法。
介面說明 :
輸入引數:
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...