JavaScript实现大数相加

48 阅读1分钟

练习,大数相加。

一、使用BigInt

使用 ES2020 引入的 BigInt 类型可以容易实现

二、兼容写法

其实也回归到我们小时候学习四则运算的时候,笔算过程。从个位数开始计算起。

const bigNumAdd = function (num1, num2) {
  let result = '';
  const len = Math.max(num1.length, num2.length);

  num1 = num1.padStart(len, '0');
  num2 = num2.padStart(len, '0');

  let flag = 0;
  for (let i = len - 1; i >= 0; i--) {
    let temp = +num1[i] + +num2[i] + flag;
    result = (temp % 10) + result;
    flag = Math.floor(temp / 10);
  }
  if (flag) {
    result = '' + flag + result;
  }
  return result;
};

const res1 = bigNumAdd('567', '879');
console.log('res1: ', res1);

很多时候的解决方案都是可以回归生活,所有问题就通了。