手写源码-大数相加

2021-07-11  本文已影响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
上一篇 下一篇

猜你喜欢

热点阅读