内容
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
思路
大数相加,思路见代码
代码
/**
* @param {string} num1
* @param {string} num2
* @return {string}
*/
var addStrings = function (num1, num2) {
var l;
var s = num1.length > num2.length ? (l = num1, num2) : (l = num2, num1);
s = new Array(l.length - s.length).fill('0').join('') + s;
var needP = false;
var result = [];
for (var i = l.length - 1; i >= 0; i--) {
var sum = Number(l[i]) + Number(s[i]) + (needP ? 1 : 0);
needP = false;
if (sum >= 10) {
needP = true;
sum -= 10;
}
result.unshift(sum.toString());
}
if (needP) {
result.unshift('1');
}
return result.join('');
};
网友评论