题解 | #大数加法#

大数加法

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
};
全部评论

相关推荐

缒梦&独舞:这家公司是这样的,去年给我实习offer了,不过也是面着玩儿的,他周六还要去做公益志愿活动
点赞 评论 收藏
分享
每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务