Heim > Web-Frontend > js-Tutorial > Lustige JavaScript-Frage: Hinzufügen großer Ganzzahlzeichenfolgen

Lustige JavaScript-Frage: Hinzufügen großer Ganzzahlzeichenfolgen

黄舟
Freigeben: 2017-01-22 14:49:31
Original
2063 Leute haben es durchsucht

Viele Sprachen bieten native Unterstützung für das Hinzufügen von zwei großen Ganzzahlzeichenfolgen.

Zum Beispiel stellt Java die Klasse BigInteger bereit, aber JS unterstützt diesen Aspekt nicht, sodass wir uns bei der Implementierung auf uns selbst verlassen müssen.

Die folgende String-Additionsfunktion empfängt zwei String-Parameter und gibt nach deren Addition das Ergebnis zurück, das ebenfalls in String-Form vorliegt.

Die Hauptidee besteht darin, Stück für Stück hinzuzufügen und zu tragen. Bei der Umsetzung sind noch einige Details zu beachten.

function sumStrings(a,b) {  
    //通过补零让a和b对齐  
    //若a比b短,则对a补零  
    while(a.length < b.length){  
        a = "0" + a;  
    }  
    //若b比a短,则对b补零  
    while(b.length < a.length){  
        b = "0" + b;  
    }  
    //是否有进位  
    var addOne = 0;  
    //结果数组  
    var result = [];  
    //从个位开始相加  
    for(var i=a.length-1;i>=0;i--){  
        var c1 = a.charAt(i) - 0;  
        var c2 = b.charAt(i) - 0;  
        var sum = c1 + c2 + addOne;  
        //若数字相加大于9,则进位  
        if(sum > 9){  
            result.unshift(sum - 10);  
            addOne = 1;  
        }  
        else{  
            result.unshift(sum);  
            addOne = 0;  
        }  
    }  
    //应付下面的情况:  
    //"99" + "11" => "110"  
    //它最后仍然要进位  
    if(addOne){  
        result.unshift(addOne);  
    }  
    //应付如下的情况  
    //"01" + "01" => "2"  
    //而不是"02",所以移除第一位的"0"  
    if(!result[0]){  
        result.splice(0,1);  
    }  
    return result.join("");  
}
Nach dem Login kopieren

Das Obige ist die interessante JavaScript-Frage: Hinzufügen großer Ganzzahlzeichenfolgen Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage