js实现两个超大数相加
解决思路
- 右对齐
- 从左到右逐位计算
/**
* 两个超大数相加
* @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'));
评论区