Code Kata:大整数四则运算—乘法 javascript实现
2018-06-24 01:01:39来源:未知 阅读 ()
上周练习了加减法,今天练习大整数的乘法运算。
采取的方式同样为竖式计算,每一位相乘后相加。
乘法函数:
- 异符号相乘时结果为负数,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<aArr.length;i++){ 37 38 var digA = parseInt(aArr[i]) ? parseInt(aArr[i]) : 0; 39 40 for(var j=0;j<bArr.length;j++){ 41 42 var zero = ''; 43 44 for(var k=0;k<i+j;k++){ 45 46 zero += '0'; 47 } 48 49 var digB = parseInt(bArr[j]) ? parseInt(bArr[j]) : 0; 50 51 mult = add(mult,(digA * digB).toString() + zero); 52 } 53 } 54 55 return sign + mult; 56 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- vscode配置eslint 2019-08-14
- codemirror 行高 字体 行间距 设置 2019-05-24
- 详解jscript.encode代码的asp函数 2019-04-04
- VS Code常用快捷键大全 2019-03-11
- 区分escape、encodeURI和encodeURIComponent 2019-03-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash