侧边栏壁纸
  • 累计撰写 94 篇文章
  • 累计创建 35 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

js实现两个超大数相加

天明
2024-06-01 / 0 评论 / 0 点赞 / 29 阅读 / 1880 字 / 正在检测是否收录...

js实现两个超大数相加

解决思路

  1. 右对齐
  2. 从左到右逐位计算
/**
 * 两个超大数相加
 * @param {String} a 
 * @param {String} b  
 */
function sum(a,b){
    //计算最大长度
    const len = Math.max(a.length, b.length);
    //补零使成相同长度
    a=a.padStart(len, '0');
    b=b.padStart(len, '0');
    carry = 0;
    result=''
    //从低位到高位相加
    for(let i=len-1; i>=0; i--){
        let sum = +a[i] + +b[i]+carry;
        result=(sum%10)+result;
        carry = Math.floor(sum/10);
    }
    //处理最高位
    if(carry>0){
        result=carry+result;
    }
    return result;
}
//console.log(sum('112233445566778899', '66666111111111111111111111'));
//console.log(sum('112233', '332211'));

0

评论区