码迷,mamicode.com
首页 > 编程语言 > 详细

【算法】大整数加法

时间:2016-03-26 12:28:53      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

思路:

  思路比较简单,将大数据的每位进行加法,记录进位即可。需要注意的是,两个数据中较长的一个需要另外单独处理多出的部分,在程序最后还要加上最高位的进位。

代码:

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(""));
    }

 

【算法】大整数加法

标签:

原文地址:http://www.cnblogs.com/shytong/p/5322563.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!