实现两个大数相加
思路:大数可能会超出 JavaScript 的数字类型范围,超出后结果损失精度,所以可以用字符串的方式来存储大数
function bigIntDataAdd(str1, str2){
const maxLength = Math.max(str1.length, str2.length); // 寻找两个字符串中最长的串的长度
str1 = str1.padStart(maxLength, 0); // 并将两个串的长度用0补齐
str2 = str2.padStart(maxLength, 0);
let flag = 0, result = ''; // 设置两个变量 flag用来记录两个值的加和是否超过10 result记录最后的结果
for(let i = maxLength - 1; i >= 0; i--){ // 循环遍历从字符串的末尾开始处理
const temp = parseInt(str1[i]) + parseInt(str2[i]) + flag; //
flag = Math.floor(temp/10); // 判断和是否满10 满10进1 该变量为 1 || 0
result = temp%10 + result; // 对结果取模并拼接结果上
}
if(flag === 1){
result = flag + result; // 如果最后的flag为 则证明 最后一次的加和满10 需在字符串的最前面拼接上该值
}
return result
}
留言