大数相加 js实现

function largeNumAdd(a = "", b = "") {
    // 数字左侧补 0
    let maxLen = Math.max(a.length, b.length);
    b = b.padStart(maxLen, '0'); //123->123
    a = a.padStart(maxLen, '0'); //  1->001

    // 结果字符串
    let res = '';
    // 相加进位保存
    let carry = 0;
    // 从右到左 个位开始依次相加
    for (let i = maxLen - 1; i >= 0; i--) {
        let add = parseInt(a[i] || 0) + parseInt(b[i] || 0) + carry;
        carry = add > 10 ? 1 : 0;
        res = `${add%10}${res}`;
    }
    // 最高位相加是否有进位
    if (carry == 1) {
        res = `${carry}${res}`;
    }
    return res;
}

console.log(largeNumAdd("12311125611111999", "999"));

本文作者:qfluck

本文链接:https://www.cnblogs.com/qfluck/p/15845704.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   qfluck  阅读(104)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.