美文网首页
手写源码-大数相加

手写源码-大数相加

作者: 胡小喵_ | 来源:发表于2021-07-11 12:53 被阅读0次
let a = "9007199254740991";
let b = "1234567899999999999";

function add(x, y) {
    x = String(x);
    y = String(y);
    const length = Math.max(x.length, y.length);
    x = x.padStart(length, 0);
    y = y.padStart(length, 0);
    x = x.split("").reverse();
    y = y.split("").reverse();
    let sum = [];
    for (let i = 0; i < length; i++) {
        sum[i] = sum[i] ? sum[i] : 0;
        let total = Number(x[i]) + Number(y[i]) + sum[i];
        if (total >= 10) {
        sum[i + 1] = 1;
        sum[i] = total % 10;
        } else {
        sum[i] = total;
        }
    }
    return sum.reverse().join("");
}
console.log(add(a, b));
// 1243575099254740990

相关文章

网友评论

      本文标题:手写源码-大数相加

      本文链接:https://www.haomeiwen.com/subject/vxekpltx.html