上周练习了加减法,今天练习大整数的乘法运算。
采取的方式同样为竖式计算,每一位相乘后相加。
乘法函数:
- 异符号相乘时结果为负数,0乘任何数都为0
- 需要调用加法函数
- 因为输入输出的为字符串,需要去除字符串开头的0
1 function multiplicative(a, b) { /*输入两个字符串类型大数字*/ 2 3 var sign = ''; 4 5 if(a == "0" || b == "0"){ 6 7 return "0"; 8 } 9 10 if(a.indexOf('-') >= 0 && b.indexOf('-') < 0){11 12 sign = '-';13 14 a = a.substr(1);15 }16 else if(a.indexOf('-') < 0 && b.indexOf('-') >= 0){17 18 sign = '-';19 20 b = b.substr(1);21 }22 23 if(a.indexOf('-') >= 0 && b.indexOf('-') >= 0){ /*两个负数相加,指定符号*/24 25 a = a.substr(1);26 27 b = b.substr(1);28 }29 30 var aArr = a.replace(/^0+/,'').split('').reverse();31 32 var bArr = b.replace(/^0+/,'').split('').reverse(); /*利用倒序数组存储*/33 34 var mult = "0";35 36 for(var i=0;i