我需要在JavaScript中乘以两个数字,但我需要不使用乘法运算符" *"。有可能吗?
function a(b,c){
return b*c;
} // note:need to do this without the "*" operator
答案 0 :(得分:3)
是。因为乘法只是多次添加。也有方法的有意义的签名,而不是使用单个字母。
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;
}
答案 1 :(得分:3)
a=(b,c)=>Math.round(b/(1/c))
答案 2 :(得分:2)
您需要能够处理负片和零片。以上其他答案对此没有帮助。有不同的方式。一个相对凌乱的方式可能是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;
}
}
答案 3 :(得分:0)
function multiply(num1, num2) {
let num = 0;
// Check whether one or both nums are negative
let flag = false;
if(num1 < 0 && num2 < 0){
flag = true;
// Make both positive numbers
num1 = Math.abs(num1);
num2 = Math.abs(num2);
}else if(num1 < 0 || num2 < 0){
flag = false;
// Make the negative number positive & keep in num2
if(num1 < 0){
temp = num2;
num2 = Math.abs(num1);
num1 = temp;
}else{
num2 = Math.abs(num2);
}
}else{
flag = true;
}
let product = 0;
while(num < num2){
product += num1;
num += 1;
}
// Condition satisfy only when 1 num is negative
if(!flag){
return -product;
}
return product;
}
console.log(multiply(-2,-2));
答案 4 :(得分:0)
还有另一种更简单的数学方法。让我们在 C++ 中做到这一点:
double mult(double a, double b) {
return exp(log(a) + log(b));
}
C++ 中的 log()
函数返回参数中传递的参数的自然对数(以 e 为底的对数)。 (参数可以是任何数字类型)
C++ 中的 exp()
函数返回给定参数的指数(欧拉数)e(或 2.71828
)。
当您简化上述语句时,您最终会得到 a * b
,但仍然没有 *
符号。
*你需要确保 a
和 b
都是正数,否则你会得到 nan
:(
答案 5 :(得分:-1)
这是来自某些编程难题还是面试问题? :)
由于乘法是重复加法,因此您可能需要一个循环,它将其中一个因子添加到另一个因子中的每个计数的结果中。
答案 6 :(得分:-1)
function multiply(a, b) {
let answer = a
for(var i = 0; i < b - 1; i++) {
answer += a
}
return answer
}
故障:
multiply(6, 3)
-我们的a
是6
,b
是3
,然后相乘answer
是6
// answer
现在是12
,i
现在是1
//我现在是1 answer
现在为18
,i
现在为2
i
不再小于(b - 1)
answer
的{{1}} 答案 7 :(得分:-1)
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;
}
}
答案 8 :(得分:-2)
$a=5;
$b=3;
for($i=0;$i<$b;$i++){
$c +=$a;
}
echo $c;
这种简单易用的php方法,我希望它是如此简单易用