思路:
思路比较简单,将大数据的每位进行加法,记录进位即可。需要注意的是,两个数据中较长的一个需要另外单独处理多出的部分,在程序最后还要加上最高位的进位。
代码:
function sum(a,b){ var strA= a.toString(), strB= b.toString(); var arrA=strA.split("").reverse(), arrB=strB.split("").reverse(); var aLen=arrA.length, bLen=arrB.length; if(aLen==1||bLen==1){ return a+b; } var flag= 0,re=[],temp=0; var maxLen=Math.min(aLen,bLen); for(var i=0;i<maxLen;i++){ temp=parseInt(arrA[i])+parseInt(arrB[i])+flag; if (temp > 9) { re.push(temp - 10); flag= 1; } else { re.push(temp); flag = 0; } } var cloneArr=aLen>bLen?arrA:arrB; for(len=cloneArr.length;i<len;i++){ temp=parseInt(cloneArr[i])+flag; if (temp > 9) { re.push(temp - 10); flag= 1; } else { re.push(temp); flag = 0; } } if(flag){ re.push(flag); } return parseInt(re.reverse().join("")); }