Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以不使用乘法运算符执行乘法吗*&引用;在JavaScript中_Javascript - Fatal编程技术网

我可以不使用乘法运算符执行乘法吗*&引用;在JavaScript中

我可以不使用乘法运算符执行乘法吗*&引用;在JavaScript中,javascript,Javascript,我需要在JavaScript中将两个数字相乘,但我需要不使用乘法运算符“*”。可能吗 function a(b,c){ return b*c; } // note:need to do this without the "*" operator 这是来自一些编程难题还是采访问题 由于乘法是重复加法,您可能需要一个循环,将其中一个因子添加到另一个因子中每个计数的结果中 是的。因为乘法是多次进行的加法。也有方法的有意义的签名,而不是使用单个字母 function multiply(num,

我需要在JavaScript中将两个数字相乘,但我需要不使用乘法运算符“*”。可能吗

function a(b,c){
    return b*c;
} // note:need to do this without the "*" operator

这是来自一些编程难题还是采访问题

由于乘法是重复加法,您可能需要一个循环,将其中一个因子添加到另一个因子中每个计数的结果中

是的。因为乘法是多次进行的加法。也有方法的有意义的签名,而不是使用单个字母

function multiply(num, times){
   // TODO what if times is zero
   // TODO what if times is negative
   var n = num;
   for(var i = 1; i < times; i++)
      num += n; // increments itself
   return num;
} 
函数乘法(num,times){
//如果时间为零怎么办
//TODO如果时间为负怎么办
var n=num;
对于(变量i=1;i
您需要能够处理负数和零。上述其他答案在这里没有帮助。有不同的方法。一种相对混乱的方式可能是ifs:

function multiply(num1, num2) {
  var sum = 0;
  for (var i = 0; i < Math.abs(num2); i++) {
    sum += num1;
  }

  if (num1 < 0 && num2 < 0) {
    return Math.abs(sum);
  } else if (num1 < 0 || num2 < 0 ) {
    return -sum;
  } else {
    return sum;
  }
}
函数乘法(num1,num2){
var总和=0;
对于(var i=0;i
a=(b,c)=>Math.round(b/(1/c))
字符串的repeat()方法可用于求两个数字的乘法

var a = 3;
var b = 4;
console.log("c".repeat(a).repeat(b).length)
log: 12
它重复c,a次=>'ccc',然后整个字符串b次=>'cccc',最后一个字符串的长度将是a*b

这类似于循环方法。 此方法仅限于正数和整数。

函数乘法(num1,num2){ 设num=0; //检查一个或两个NUM是否为负值 让flag=false; 如果(num1<0&&num2<0){ flag=true; //两个数字都是正数 num1=数学绝对值(num1); num2=数学绝对值(num2); }否则如果(num1<0 | | num2<0){ flag=false; //将负数设为正数并保持为num2 if(num1<0){ 温度=num2; num2=数学绝对值(num1); num1=温度; }否则{ num2=数学绝对值(num2); } }否则{ flag=true; } 设乘积=0; while(num
多功能(a、b){
设和=0;
for(设i=0;i
不正确5*5=25;在您的情况下,它将在第一步5+5=10;以及在第二步骤10+10上@kpblc哦,是的。谢谢经过编辑,现在我可以向您推+1)解释否决票对我和我的代码都有好处,因为两者都得到了改进。@ShaikRasool为什么您认为我知道它?虽然此代码可能会回答问题,但提供了有关此代码回答问题的原因和/或如何提高其长期价值的其他上下文。dferenc,我相信它非常简单,除了可能的
round
方法-我使用它是为了得到理智和准确的结果,例如(因为0.1+0.2!==0.3),这确实是一个很好的解决方案,我没有标记它或任何东西(注:只有代码的答案总是去查看队列…)。然而,我想对于刚开始学习javascript的人来说,即使是一个简单的箭头函数也不是一件小事。对于不熟悉/不熟悉倒数的人来说,这也不是一件小事。请在代码中添加更多的上下文,你想实现什么?什么事情没有发生?
function multiple(a, b) {
    let sum = 0;
    for (let i = 0; i < Math.abs(b); i++) {
       sum += Math.abs(a);
    }

    if (a < 0 && b < 0) {
        return Math.abs(sum);
    } else if (a < 0 || b < 0 ) {
        return -sum;
    } else {
        return sum;
    }
}