Skip to content
js
function addBigIntegers(num1, num2) {
  // 将输入的字符串形式的大数转换为字符数组(从后往前遍历)
  let arr1 = [...num1].reverse();
  let arr2 = [...num2].reverse();

  // 初始化结果数组和进位标志
  let result = [];
  let carry = 0;

  // 遍历两个数组,执行加法操作,并处理进位
  for (let i = 0; i < Math.max(arr1.length, arr2.length); i++) {
    let n1 = parseInt(arr1[i] || "0", 10);
    let n2 = parseInt(arr2[i] || "0", 10);

    let sum = n1 + n2 + carry;
    carry = Math.floor(sum / 10); // 计算新的进位值
    result.push(sum % 10); // 将余数添加到结果数组
  }

  // 如果最后还有进位,则需要在结果数组前面加上进位值
  if (carry > 0) {
    result.unshift(carry);
  }

  // 将结果数组转为字符串,并反转以得到正确顺序的大数
  return result.reverse().join("");
}

// 示例:
console.log(addBigIntegers("1234567890", "9876543210")); // 输出:'11111111100'

Released under the MIT License.