Code Kata:大整数四则运算—乘法 javascript实现
上周练习了加减法,今天练习大整数的乘法运算。
采取的方式同样为竖式计算,每一位相乘后相加。
乘法函数:
- 异符号相乘时结果为负数,0乘任何数都为0
- 需要调用加法函数
- 因为输入输出的为字符串,需要去除字符串开头的0
function multiplicative(a, b) { /*输入两个字符串类型大数字*/ var sign = ''; if(a == "0" || b == "0"){ return "0"; } if(a.indexOf('-') >= 0 && b.indexOf('-') < 0){ sign = '-'; a = a.substr(1); } else if(a.indexOf('-') < 0 && b.indexOf('-') >= 0){ sign = '-'; b = b.substr(1); } if(a.indexOf('-') >= 0 && b.indexOf('-') >= 0){ /*两个负数相加,指定符号*/ a = a.substr(1); b = b.substr(1); } var aArr = a.replace(/^0+/,'').split('').reverse(); var bArr = b.replace(/^0+/,'').split('').reverse(); /*利用倒序数组存储*/ var mult = "0"; for(var i=0;i<aArr.length;i++){ var digA = parseInt(aArr[i]) ? parseInt(aArr[i]) : 0; for(var j=0;j<bArr.length;j++){ var zero = ''; for(var k=0;k<i+j;k++){ zero += '0'; } var digB = parseInt(bArr[j]) ? parseInt(bArr[j]) : 0; mult = add(mult,(digA * digB).toString() + zero); } } return sign + mult; }
相关推荐
softwear 2020-08-21
ZGCdemo 2020-08-16
northwindx 2020-05-31
zrtlin 2020-11-09
xuebingnan 2020-11-05
wikiwater 2020-10-27
heheeheh 2020-10-19
Crazyshark 2020-09-15
jczwilliam 2020-08-16
littleFatty 2020-08-16
idning 2020-08-03
jinxiutong 2020-07-26
lanzhusiyu 2020-07-19
Skyline 2020-07-04
xiaofanguan 2020-06-25
Aveiox 2020-06-23