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;
 } 相关推荐
  ZGCdemo    2020-08-16  
   northwindx    2020-05-31  
   zrtlin    2020-11-09  
   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