实现两个大数相加

思路:大数可能会超出 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
}
最后修改日期: 2024年 4月 1日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。