Skip to main content

415. 字符串相加

给定两个字符串形式的非负整数  num1 和 num2 ,计算它们的和并同样以字符串形式返回。

你不能使用任何內建的用于处理大整数的库(比如 BigInteger),  也不能直接将输入的字符串转换为整数形式。

示例 1:

输入:num1 = "11", num2 = "123"
输出:"134"

示例 2:

输入:num1 = "456", num2 = "77"
输出:"533"

示例 3:

输入:num1 = "0", num2 = "0"
输出:"0"

答案



var addStrings = function(num1, num2) {
const maxLength = Math.max(num1.length,num2.length)

let sum = ''
let overflow = false

for(let i=0;i<maxLength;i++){
// 注意:num1.length-i-1
const n1 = num1[num1.length-i-1] || '0'
const n2 = num2[num2.length-i-1] || '0'

let ci = parseInt(n1) +parseInt(n2)+(overflow ? 1 : 0)
// 进位判断
if(ci >=10){
overflow = true
}else{
overflow = false
}
// 进位取个位
if(overflow){
ci = ci-10
}else{
ci = ci
}
// 累加
sum = ci + sum
}
// 判断最后一个是否进位
if(overflow){
sum = '1' + sum
}
return sum
};
var num1 = '11',
num2 = '123'

console.log(addStrings(num1, num2))