(function () {var addlarge = function (n1,n2) {var carry = 0;var ret = ""; n1=n1.tostring (); n2=n2.tostring (); var len = Math.mi N (n1.length,n2.length); var sln1 = N1.substr (n1.length-len,n1.length); var sln2 = N2.substr (n2.length-len,n2.length); f or (var i = len;i > 0; i--) {var di = parseint (sln1[i-1]); var dj = parseint (Sln2[i-1]); ret = (carry + di + DJ) >= 10? ((Carry + di + DJ)-ten + ret): ((CARRY+DI+DJ) + ret); carry = ((Carry + di + DJ)/10) | 0;} if (n1.length! = n2.length) {if (N1.length > n2.length) {ret = Addlarge (N1.substr (0,n1.length-len), carry.tostring ()) + RET;} Else{ret = Addlarge (N2.substr (0,n2.length-len), carry.tostring ()) + ret;} return ret;} Else{if (carry> 0) {ret = carry+ ret;} return ret.tostring ();}}; var multiply = function (n1,n2) {var nstr1 = n1.tostring (); var nstr2 = n2.tostring (); var carry = 0;var ret = ""; var di = 0;v AR dj = 0;var dig = ""; for (var i = nstr1.length-1; I >= 0;i--) {var tmp = "", var di = parseint (nstr1[i]); for (var j = Nstr2.length-1;j >= 0;j--) {var dj = parseint (Nstr2[j]), var r = di*dj + carry;if (r >=) {carry = (R/10) | 0;tmp = (R%10) + tmp;} Else{carry=0;tmp = R + tmp;}} if (Carry > 0) {tmp = carry.tostring () + Tmp;carry = 0;} if (I < nstr1.length-1) {ret = Addlarge (ret, tmp + dig);} Else{ret = tmp;} Dig + = "0";} return ret;}; var a = "1543843275857859592482498432243255"; var b = "1554335546546546662"; Console.log (multiply (b)); Console.log ( parseint (a) *parseint (b));}) ();
Multiply two large numbers--JavaScript implementations