JS实现两个大数(整数)相乘 实例代码
2014-04-29 06:28
856 查看
在javascript中,大数,即超出语言所能表示的数字最大范围的数字,那么如何实现两个大数相乘呢?
代码:
代码:
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); } www.jbxue.com 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(""); } www.jbxue.com 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实现两个大数(整数)相乘
- 华为OJ机试题目:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)
- JS实现大数(整数)相乘
- 用JS代码怎么实现两个文本框的Value相乘
- JS实现多物体缓冲运动实例代码
- js实现json数据行到列的转换的实例代码
- C语言实现两个大数相乘
- js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
- 矩阵相乘-c++代码实现及运行实例结果
- js实现收缩菜单效果实例代码
- JS实现移动端整屏滑动的实例代码
- 基于JS实现新闻列表无缝向上滚动实例代码
- d3.js实现简单的网络拓扑图实例代码
- 使用jQuery实现两个div中按钮互换位置的实例代码
- 矩阵相乘-c++代码实现及运行实例结果
- java实现合并两个已经排序的列表实例代码
- js实现网页内查找代码(实例)
- JS数组实现分类统计实例代码
- 分享利用JS实现两个select标签中内容更换的小实例