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
Freigeben: 2016-05-16 16:50:55
Original
2177 Leute haben es durchsucht

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

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