题解 | #高精度整数加法#

高精度整数加法

https://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

// 定义两个保存输入值的变量
let [a, b, num,sum, resStr] = [undefined, undefined, 0, 0, '']

rl.on('line', function (line) {
    num++
    if(num === 1) {
        a = line.split('').map(Number)
    }else if(num === 2 ){
        b = line.split('').map(Number)
    }

    if(num === 2){
        // 有条件 sum的原因就是,当最后一次相加时有进位
        while(a.length || b.length || sum){
            // 将a、b数组对应的值逐一抛出进行相加
            // ~~其实就是本身,但是对于能转成false的值,~~后回转成0 [] {}也会转成0
            // 这么做就是要让 undefined变成0, 因为有可能两个数长度不用一致
            sum += ~~a.pop() + ~~b.pop()
            // resStr要打印的结果
            resStr = sum % 10 + resStr
            // 两个数加起来的值的进位,留到下一次
            sum = sum >= 10? 1 : 0
        }
        console.log(resStr)
    }
});

全部评论

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 12:10
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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