1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| function sum(a, b) { const aLen = a.length; const bLen = b.length; const len = aLen > bLen ? aLen : bLen;
if (aLen !== len) { for (let i = 0; i < len - aLen; i++) { a = '0' + a } } else { for (let i = 0; i < len - bLen; i++) { b = '0' + b } }
const arrA = a.split('').reverse().map(i => Number(i)) const arrB = b.split('').reverse().map(i => Number(i))
const arr = []
let tmpN = 0
for (let i = 0; i < len; i++) { const num = arrA[i] + arrB[i] + tmpN if (num >= 10) { arr.push(num - 10) tmpN = 1 } else { arr.push(num) tmpN = 0 } } if (tmpN === 1) { arr[len] = 1 } return arr.reverse().join('') }
console.log(sum('45611564564648', '4567889222203456674833')) console.log(45611564564648 + 4567889222203456674833)
|