前言
我们知道当在浏览器输入 9999999999999999999999 + 9999999999999999999999 时,它的结果是一个科学计数法。往往我们不需要也看不懂科学计数法。所以需要实现一个函数来实现大数相加。
分析
我们可以通过把一个很大的数字,拆分成一小部分一小部分的加起来。
通过字符串形式,我们手动模拟进位的操作
如果当他满 10 的时候,我们保留个位,将十位(也就是进位)保存起来
当下次计算的时候,我们加上进位
代码实现
const addStrings = (num1, num2) => {let i = num1.length - 1;let j = num2.length - 1;let add = 0;const answer = []while (i >= 0 || j >= 0 || add !== 0) {const val1 = i >= 0 ? num1.charAt(i) - '0' : 0const val2 = j >= 0 ? num2.charAt(j) - '0' : 0const result = val1 + val2 + addanswer.push(result % 10)add = Math.floor(result / 10)i -= 1j -= 1}return answer.reverse().join('')}
