题解 | #大数加法#
大数加法
http://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
从低位开始相加的同时,考虑进位,当两个数组的数加完,但carry不为0的情况下,将进位进到首位。
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
function solve( s , t ) {
// write code here
if (s == '' || t == '') {
return s || t
}
let sArr = s.split('')
let tArr = t.split('')
let resultArr = []
let i = sArr.length - 1
let j = tArr.length - 1
// 进位
let carry = 0
while (i >= 0 || j >= 0 || carry != 0) {
carry += i >= 0 ? parseInt(sArr[i--]) : 0
carry += j >= 0 ? parseInt(tArr[j--]) : 0
resultArr.unshift(String(carry % 10))
carry = parseInt(carry/10)
}
return resultArr.join('')
}
module.exports = {
solve : solve
};