实现了大数的相加的实现思路
const add = (a, b) => {
// 1. 先转换字符串
a = a + ''
b = b + ''
// 获取最大个数
const max = Math.max(a.length, b.length)
a = a.padStart(max, '0')
b = b.padStart(max, '0')
let surplus = 0,
sum = '',
i = max - 1
for (; i >= 0; i -= 1) {
// 将两个值的最后一位相加
const total = +a[i] + +b[i]
// 获取个数位的值
const discuss = total % 10
// 个数位的值 + 上一次的进位结果
const nums = surplus + +discuss
surplus = 0
if (total > 9) surplus += 1
if (nums > 9) surplus += 1
// 计算结果
sum = (sum === '' ? nums % 10 : (nums % 10) + sum) + ''
}
return sum
}
- 两个数的个数必须相等
- 从后往前依次添加,如果遇到大于10的,直接进位,参数下一次运算