/**
 * 腾讯面试题:两个超过整数存储范围的大正整数相加
 * @param {String} a
 * @param {String} b
 */
function bigNumbersum(a, b) {
    const len = Math.max(a.length, b.length);
    a = a.padStart(len, '0');
    b = b.padStart(len, '0');
    let carry = 0;
    let result = '';
    for (let i = len - 1; i >= 0; i--) {
        const sum = +a[i] + +b[i] + carry;
        const r = sum % 10;
        carry = Math.floor(sum / 10);
        result = r + result;
    }
    return result
}

console.log(bigNumbersum("4545645456456454654", "4545645456456454654"))

// 知识点:
// 最大安全整数:Number.MAX_SAFE_INTEGER 9007199254740991
// 字符串前补零:"".padStart(len,char)
// 字符串后补零:"".padEnd(len,char)
// 返回最大的数:Math.Max()
// 对一个数进行向下取整:Math.floor()

标签: 暂无标签