首页 web前端 js教程 JS实现两个大数(整数)相乘_javascript技巧

JS实现两个大数(整数)相乘_javascript技巧

May 16, 2016 pm 04:50 PM
整数 相乘

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

复制代码 代码如下:

console.log(bigMut("567", "1234")); // 699678
function bigMut(big, common) {
big += "";
common += "";
if (big.length big = [common, common = big][0];
}
big = big.split("").reverse();
var oneMutManyRes = [];
var i = 0,
len = big.length;
for (; i oneMutManyRes[oneMutManyRes.length] = oneMutMany(big[i], common) + getLenZero(i);
}
var result = oneMutManyRes[0];
for (i = 1, len = oneMutManyRes.length; 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 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 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("");
}
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1666
14
CakePHP 教程
1425
52
Laravel 教程
1323
25
PHP教程
1272
29
C# 教程
1251
24
如何在Python中将DateTime转换为整数? 如何在Python中将DateTime转换为整数? Sep 05, 2023 pm 10:21 PM

日期和时间值的操作是编程的一个重要方面,Python语言为此提供了一个有用的内置模块,称为datetime。但是,在某些情况下,可能需要将DateTime对象转换为整数值,以便执行特定的操作或计算。在Python中将DateTime转换为整数有多种方法,每种方法都有自己的优点和缺点。在本文中,我们将深入研究这些方法并检查每种方法何时适合使用。读完本文后,您将全面了解如何在Python中有效地将DateTime对象转换为整数,并能够为您的特定编程任务选择最合适的方法。方法一:使用timestamp

javascript怎么将整数转为小数 javascript怎么将整数转为小数 Nov 03, 2021 pm 05:59 PM

在javascript中,可以利用toFixed()函数来将整数转为小数,该函数能够把整数转换为指定小数位数的数字;语法“number.toFixed(x)”,参数“x”规定小数的位数。

整数的正则表达式有哪些 整数的正则表达式有哪些 Nov 14, 2023 pm 04:11 PM

整数的正则表达式有:1、匹配正整数:^[1-9]\d*$;2、匹配负整数:^-[1-9]\d*$;3、匹配正整数和负整数:^-?\d+$;4、匹配非零整数:^(0|[1-9]\d*)$;5、匹配整数(包括零):^-?\d+$。

Sharepoint安装SSL证书? Sharepoint安装SSL证书? Feb 19, 2024 am 11:27 AM

在SharePoint上安装SSL证书是保护网站安全性和提供加密连接的关键步骤。通过遵循正确的安装步骤,您可以确保网站数据的安全性,并提升在搜索引擎中的排名,为访问者提供更好的用户体验。获取SSL证书联系可信任的证书颁发机构(CA)购买SSL证书。提供所需的身份验证和域名所有权验证信息。完成验证流程后,您将收到SSL证书文件。准备证书文件使用文本编辑器打开您的SSL证书文件。将证书内容复制到一个新的文本文件中。将该文件保存为yourdomain.cer,确保将”yourdomain&#8221

Python程序使用多维数组相乘两个矩阵 Python程序使用多维数组相乘两个矩阵 Sep 11, 2023 pm 05:09 PM

矩阵是按行和列排列的一组数字。m行n列的矩阵称为mXn矩阵,m和n称为其维度。矩阵是一个二维数组,在Python中使用列表或NumPy数组创建。一般来说,矩阵乘法可以通过将第一个矩阵的行乘以第二个矩阵的列来完成。这里,第一矩阵的列数应等于第二矩阵的行数。输入输出场景假设我们有两个矩阵A和B,这两个矩阵的维度分别为2X3和3X2。相乘后得到的矩阵将有2行1列。[b1,b2][a1,a2,a3]*[b3,b4]=[a1*b1+a2*b2+a3*a3][a4,a5,a6][b5,b6][a4*b2+a

PHP时间戳转换为整数的方法 PHP时间戳转换为整数的方法 Mar 20, 2024 pm 04:24 PM

PHP中时间戳是一种表示时间的整数形式,通常是自Unix元年(1970年1月1日00:00:00GMT)起经过的秒数。在编程中,我们经常需要将时间戳转换为其他形式的整数,下面就为大家介绍如何将PHP时间戳转换为整数的方法,以及具体的代码示例。在PHP中,我们可以使用strtotime()函数将时间字符串转换为时间戳,然后再使用date

Excel相乘函数怎么用 Excel相乘函数怎么用 Mar 20, 2024 pm 01:00 PM

我们日常办公经常会使用的Excel表格,那么你是否对里边的函数都有了解呢?像除法函数、VLOOKUP函数、IF函数、Excel相乘函数等等,前几个函数我们都已经学习过了,那么今天我就带领给为小伙伴们一起学习Excel相乘函数,具体的操作步骤就在下方,大家认真的看一看吧!1.首先,我们打开一个EXCEL表格,我们要算出每个水果的总价格,那么我们需要用单价*数量,(如下图所示)。2.然后,我们在表格的D2行输入相乘函数【=B2*C2】,再点击键盘上的回车键【Enter】(如下图红色圈出部分所示)。3

如何使用Integer类的parseInt()方法将字符串转换为整数 如何使用Integer类的parseInt()方法将字符串转换为整数 Jul 25, 2023 pm 05:21 PM

如何使用Integer类的parseInt()方法将字符串转换为整数在编程中,我们经常需要将一个字符串转换为整数。Java提供了一个非常方便的方法,即使用Integer类的parseInt()方法来实现这个功能。本文将详细介绍Integer类的parseInt()方法的使用,以及提供一些使用该方法的示例代码。Integer类是Java中表示整数的包装类之一,

See all articles