function bigSum(str1,str2){
var a=str1.split('');
var b=str2.split('');
var alen=a.length;
var blen=b.length;
var result=[]//结果
var current=0//记录进位
var sum=0//记录当前位
var length=Math.max(alen,blen)
while(alen<length){
a.unshift('0')
alen++;
}
while(blen<length){
b.unshift('0')
blen++;
}
for(var i=length-1;i>=0;i--){
sum=Number(a[i])+Number(b[i])+Number(current)
current=sum>=10?parseInt(sum/10)
sum=sum>=10?parseInt(sum%10):sum
result.unshift(sum)
}
console.log(result)
return result.join('').replace('/^0/','')
}
console.log(bigSum('100000000000002222', '111111'))
思路:
1.计算两个字符串长度
2.比较两个字符串长度 不够前面补0
3.从个位开始计算 进行两数相加‘
4.进位初始0 每次计算都要加上进位
5.累计值/10计算当前位,然后压进最前面
6.去除最终结果多余的0
7.返回结果