算法大整数加法

Posted 很好玩的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法大整数加法相关的知识,希望对你有一定的参考价值。

思路:

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

代码:

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

 

以上是关于算法大整数加法的主要内容,如果未能解决你的问题,请参考以下文章

用c语言实现超长整数的加法运算

使用 CUDA 进行大整数加法

大整数加法

POJ 2506 Tiling(递推+大整数加法)

大整数加法

大整数加法 HDU1002