数码资讯
js将两个大数相乘(整数)
大数,即超过语言所能表达的最大数,此时只能用一个字符串表示,那么两个大数怎么能相乘呢我用js实现的,代码如下所示: 复制代码代码如下所示: console.log(bigmut(567 功能bigmut(大,常见){ =大; =普通; 如果(big.length
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
大数,即超过语言所能表达的最大数,此时只能用一个字符串表示,那么两个大数怎么能相乘呢我用js实现的,代码如下所示:
复制代码代码如下所示:
console.log(bigmut(567
功能bigmut(大,常见){
=大;
=普通;
如果(big.length <常见。长度){
大=普通,普通=大} { 0 };
}
大big.split()反();
无功onemutmanyres = { };
var I=0,
big.length len =;
为了(;;我;我;+){
onemutmanyres { onemutmanyres。长度} = onemutmany(大{我},常见)+ getlenzero(我);
}
var result = onemutmanyres { 0 };
为(i = 1,len = onemutmanyres.length;我< len;i++){
结果:bignumadd(结果,onemutmanyres {我});
}
返回结果;
}
功能getlenzero(LEN){
= 1;
变量= { };
ary.length = Len;
返回ary.join(0 );
}
功能onemutmany(一,许多){
=;
=许多;
如果(one.length!= 1){
一个=多,多= 0 };
}
一个= parseInt(一,10);
var I=0,
many.length len =,
resary = { },
增加= 0,
CurItem,
曲线,
ToSave;
许多= many.split()反();
为((i = =;i;+){){
curitem = parseInt(很多{我} | | 0, 10);
曲线= curitem *一+补充;
拯救=曲线% 10;
增加=(曲线-曲线% 10)/ 10;
resary.unshift(节省);
}
如果(resary { 0 } = = 0){
(0, 1)resary.splice;
}
返回resary.join();
}
功能bignumadd(大,常见){
=大;
=普通;
无功maxlen = math.max(big.length,常见的长度),
巴里= big.split()反(),
卡里= common.split()反(),
我= 0,
addtonext = 0,
resary = { },
FN,
锡,
总和;
为(;我< = maxlen;i++){
FN = parseInt(巴里{我} | | 0);
Sn = parseInt(卡里{我} | | 0);
总和= FN +锡+ addtonext;
addtonext =(总金额% 10)/ 10;
resary.unshift(总和为10);
}
如果(resary { 0 } = = 0){
(0, 1)resary.splice;
}
返回resary.join();
}
复制代码代码如下所示:
console.log(bigmut(567
功能bigmut(大,常见){
=大;
=普通;
如果(big.length <常见。长度){
大=普通,普通=大} { 0 };
}
大big.split()反();
无功onemutmanyres = { };
var I=0,
big.length len =;
为了(;;我;我;+){
onemutmanyres { onemutmanyres。长度} = onemutmany(大{我},常见)+ getlenzero(我);
}
var result = onemutmanyres { 0 };
为(i = 1,len = onemutmanyres.length;我< len;i++){
结果:bignumadd(结果,onemutmanyres {我});
}
返回结果;
}
功能getlenzero(LEN){
= 1;
变量= { };
ary.length = Len;
返回ary.join(0 );
}
功能onemutmany(一,许多){
=;
=许多;
如果(one.length!= 1){
一个=多,多= 0 };
}
一个= parseInt(一,10);
var I=0,
many.length len =,
resary = { },
增加= 0,
CurItem,
曲线,
ToSave;
许多= many.split()反();
为((i = =;i;+){){
curitem = parseInt(很多{我} | | 0, 10);
曲线= curitem *一+补充;
拯救=曲线% 10;
增加=(曲线-曲线% 10)/ 10;
resary.unshift(节省);
}
如果(resary { 0 } = = 0){
(0, 1)resary.splice;
}
返回resary.join();
}
功能bignumadd(大,常见){
=大;
=普通;
无功maxlen = math.max(big.length,常见的长度),
巴里= big.split()反(),
卡里= common.split()反(),
我= 0,
addtonext = 0,
resary = { },
FN,
锡,
总和;
为(;我< = maxlen;i++){
FN = parseInt(巴里{我} | | 0);
Sn = parseInt(卡里{我} | | 0);
总和= FN +锡+ addtonext;
addtonext =(总金额% 10)/ 10;
resary.unshift(总和为10);
}
如果(resary { 0 } = = 0){
(0, 1)resary.splice;
}
返回resary.join();
}
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。