Algorithm

JavaScript로 BigInt 사용하지 않고 큰 숫자 더하기

Bonita SY 2021. 1. 21. 19:49
728x90
function add(a, b) {
  let result = '';
  let aLen = a.length;
  let bLen = b.length;

  if (aLen < bLen) {
    a = a.padStart(bLen, '0');
  } else if (aLen > bLen) {
    b = b.padStart(aLen, '0');
  }

  let moveNum = 0;
  for (let i = aLen; i > 0; i--) {
    let curNum = '';
    let sum = Number(a.slice(i - 1, i)) + Number(b.slice(i - 1, i)) + moveNum;

    if (sum >= 10) {
      if (i !== 1) {
        moveNum = 1;
        curNum = sum.toString().slice(1);
      } else {
        curNum = sum.toString();
      }
    } else {
      moveNum = 0;
      curNum = sum.toString();
    }

    result = `${curNum}${result}`;
  }

  return result;
}

 

결과

> add('1000000000000000000000', '1000000000000000000000')
'2000000000000000000000'
728x90

'Algorithm' 카테고리의 다른 글

JavaScript로 다양한 Sort 구현하기  (0) 2021.01.07
JavaScript로 Fibonacci 구현하기  (0) 2021.01.07
JavaScript로 Factorial 구현하기  (0) 2021.01.07