题解 | #高精度整数加法#
高精度整数加法
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) } });