用js完成两个大数据求和

function a(d1,d2)
{
var arrayA =d1.split("");//将字符串转为数组
var arrayB = d2.split("");
var ArrayA = [];
var ArrayB = [];
var l1 = arrayA.length;
var l2 = arrayB.length;
var arrayC = [];

var n = l1<l2?l1:l2;

for(var i = 0;i<arrayA.length;i++){//将string类型的数组转为int型
ArrayA[i] = parseInt(arrayA[i]);
}
for(var i = 0;i<arrayB.length;i++){
ArrayB[i] = parseInt(arrayB[i]);
}

if(ArrayA.length >= ArrayB.length){//判断哪个数组较大
max = ArrayA;
min = ArrayB;
}
else{
min = ArrayA;
max = ArrayB;
}

for(var i = n-1;i>=0;i--){
arrayC[i] = (min[i])+max[Math.abs(l1-l2)+i];//从个位开始相加
if((arrayC[i])>9){//遇10进一
arrayC[i] -=10;
max[Math.abs(l1-l2)+i-1] +=1;//进一
}
}
var result = [];
for(var i = 0;i<Math.abs(l1-l2);i++){//补齐高位
result[i] = max[i];

}
result = (result.concat(arrayC)).join("");//将数组连接成字符串
console.log(result);

}

a("1200000000000000000000000000000000","140000000000001452");
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值