国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS實現(xiàn)兩個大數(shù)(整數(shù))相乘

2024-05-06 16:04:42
字體:
來源:轉載
供稿:網(wǎng)友
大數(shù),即超出語言所能表示的數(shù)字最大范圍的數(shù)字,那么如何實現(xiàn)兩個大數(shù)相乘呢?下面有個不錯的方法,大家可以參考下

大數(shù),即超出語言所能表示的數(shù)字最大范圍的數(shù)字,此時的數(shù)字只能用字符串來表示。那么如何實現(xiàn)兩個大數(shù)相乘呢?我用JS實現(xiàn)了一下,代碼如下:

復制代碼 代碼如下:


console.log(bigMut("567", "1234")); // 699678
function bigMut(big, common) {
big += "";
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;
toSave = curRes % 10;
addTo = (curRes - curRes % 10) / 10;
resAry.unshift(toSave);
}
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);
sn = parseInt(cAry[i] || 0);
sum = fn + sn + addToNext;
addToNext = (sum - sum % 10) / 10;
resAry.unshift(sum % 10);
}
if (resAry[0] == 0) {
resAry.splice(0, 1);
}
return resAry.join("");
}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 蓬莱市| 大宁县| 刚察县| 石屏县| 深水埗区| 焦作市| 广安市| 瓦房店市| 屏东市| 鹿泉市| 孝感市| 定结县| 邳州市| 马山县| 同德县| 禄丰县| 玉山县| 鄂伦春自治旗| SHOW| 凌云县| 松滋市| 大连市| 洪江市| 金秀| 孝昌县| 昌吉市| 南城县| 青铜峡市| 江安县| 丹寨县| 潼关县| 米泉市| 平利县| 汕尾市| 琼结县| 肥城市| 廊坊市| 启东市| 申扎县| 泸溪县| 皋兰县|