Heim > Artikel > Web-Frontend > Lustige JavaScript-Frage: Hinzufügen großer Ganzzahlzeichenfolgen
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(""); }
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)!