Heim >Web-Frontend >js-Tutorial >JS implementiert die Multiplikation zweier großer Zahlen (Ganzzahlen)_Javascript-Fähigkeiten

JS implementiert die Multiplikation zweier großer Zahlen (Ganzzahlen)_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 16:50:552176Durchsuche

Große Zahlen, also Zahlen, die den maximalen Zahlenbereich überschreiten, der durch Sprache dargestellt werden kann. Derzeit können die Zahlen nur durch Zeichenfolgen dargestellt werden. Wie multipliziert man also zwei große Zahlen? Ich habe es mit JS implementiert, der Code lautet wie folgt:

Code kopieren Der Code lautet wie folgt:

console.log(bigMut("567", "1234")); // 699678
function bigMut(big, common) {
common = ""; 🎜>if (big .length < common.length) {
big = [common, common = big][0]}
big = big.split("").reverse() ;
var oneMutManyRes = [];
var i = 0,
len = big.length;
for (; i < len; i ) {
oneMutManyRes[oneMutManyRes.length] = oneMutMany(big[ i], common) getLenZero(i);
}
var result = oneMutManyRes[0]; for (i = 1, len = oneMutManyRes.length; i < len; i ) {
result = bigNumAdd(result, oneMutManyRes[i]);
return result;
function getLenZero(len) {
len = 1; >var ary = [ ];
ary.length = len;
return ary.join("0");
function oneMutMany(one, many) {
one = " ";
many = "";
if (one.length != 1) {
one = [many, many = one][0];
}
one = parseInt( one, 10);
var i = 0,
len = many.length,
resAry = [],
addTo = 0,
curItem,
curRes,
toSave;
Many = Many.split("").reverse();
for (; i <= len; i ) {
curItem = parseInt(many[i] || 0, 10 );
curRes = curItem * one addTo;
addTo = (curRes - curRes % 10) / 10;
if ( resAry[0] == 0) {
resAry.splice(0, 1);
}
return resAry.join(""}
function bigNumAdd(big, common ) {
big = "";
common = ""
var maxLen = Math.max(big.length, common.length),
bAry = big.split ("").reverse(),
cAry = common.split("").reverse(),
i = 0,
addToNext = 0,
resAry = [],
fn,
sn,
sum;
for (; i <= maxLen; i ) {
fn = parseInt(bAry[i] || 0); (cAry[i] || 0);
sum = fn addToNext;
addToNext = (sum - sum % 10) / 10;
if ( resAry[0] == 0) {
resAry.splice(0, 1);
}
return resAry.join(""}

Stellungnahme:
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