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 |