javascript - 不使用乘法将两个数相乘

标签 javascript data-structures logic

<分区>

我有一个测试,我需要在不使用乘法的情况下编写两个数字相乘的代码,

代码如下,

function multiply(num,toNum){
  var product = 0;
  for(var i = 1; i <= toNum; i++){
    product += num;
  }

  return product;
}

console.log(multiply(2,5)); 

输出是

rahul@rahul:~/myPractise/Algo$ node MultiplyWithoutLoop.js 
10 
rahul@rahul:~/myPractise/Algo$ 

以上代码是否令人满意或是否需要改进。

能否应用更好的逻辑。

嘿,

我用递归解决了它,

这是代码,

function multiply01(num,toNum){
  var product = num;    
  return (toNum >= 1) ? product + multiply01(product,--toNum) : 0; 
}

最佳答案

紧凑的方式:

function multiply(a, b) {
  return a / (1 / b);
}

console.log(multiply(2, 5)); // 10

关于javascript - 不使用乘法将两个数相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38608356/

相关文章:

logic - LabVIEW中的未知图标

java - int 反向符号 negate() java

javascript - 比较日期时间逻辑

javascript - 单击时从 div 中提取 id

Javascript 在选中复选框时隐藏/取消隐藏文件上传

php - MySql:映射表或同一个表中的所有数据?

algorithm - 查找树中间附近的所有节点

javascript - 无法嵌入 "new look"Google map

javascript - 从 JavaScript 创建 HTML 元素时的性能注意事项是什么?

java - 使用java map /列表按相似结构分组