js
function bigIntAdd(a, b) {
let len = Math.max(a.length, b.length)
a = a.padStart(len, '0')
b = b.padStart(len, '0')
// console.log(a)
// console.log(b)
let carry = 0
let result = ''
for (let i = len - 1; i >= 0; i--) {
let sum = +a[i] + +b[i] + carry
result = (sum % 10) + result
carry = Math.floor(sum / 10)
}
if (carry) {
result = '1' + result
}
return result
}
// 测试
{
let a = '1111111111111111111111111111111111111111'
let b = '2222222222222222222222222222222222222222'
let res = bigIntAdd(a, b)
console.log(res === '3333333333333333333333333333333333333333')
}
{
let a = '1111111111111111111111111111111111111111'
let b = '9999999999999999999999999999999999999999'
let res = bigIntAdd(a, b)
console.log(res === '11111111111111111111111111111111111111110')
}