手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JS实现两个大数(整数)相乘
JS实现两个大数(整数)相乘
摘要:大数,即超出语言所能表示的数字最大范围的数字,此时的数字只能用字符串来表示。那么如何实现两个大数相乘呢?我用JS实现了一下,代码如下:复制代...

大数,即超出语言所能表示的数字最大范围的数字,此时的数字只能用字符串来表示。那么如何实现两个大数相乘呢?我用JS实现了一下,代码如下:

复制代码 代码如下:

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("");

}

【JS实现两个大数(整数)相乘】相关文章:

JavaScript中指定函数名称的相关方法

利用js实现禁止复制文本信息

三种AngularJS中获取数据源的方式

JS实现模拟风力的雪花飘落效果

JS实现简单路由器功能的方法

JS实现带缓冲效果打开、关闭、移动一个层的方法

JS实现窗口加载时模拟鼠标移动的方法

JS实现动态生成表格并提交表格数据向后端

JQuery+CSS实现图片上放置按钮的方法

JavaScript实现身份证验证代码

精品推荐
分类导航