/**
* 长数字相加
* @param {string} a - 第一个长数字字符串
* @param {string} b - 第二个长数字字符串
* @returns {string} - 相加后的长数字字符串
*/
function sum(a, b) {
// 获取两个数字字符串中较长的长度
let len = Math.max(a.length, b.length);
// 在较短的数字字符串前面补0,使其长度与较长的数字字符串相同
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;
// 计算进位
carry = Math.floor(sum / 10);
// 将当前位的结果添加到结果字符串的前面
result = (sum % 10) + result;
}
// 如果最后还有进位,将进位添加到结果字符串的前面
if (carry) {
result = carry + result;
}
// 返回结果字符串
return result;
}
console.log(sum("111222222","90000"));
//输出结果:111312222