Javascript 无运算符的JS递归乘法函数
我想创建一个Javascript 无运算符的JS递归乘法函数,javascript,recursion,Javascript,Recursion,我想创建一个multiply函数,它以两个数字作为参数 并返回这两个数相乘的结果,而不使用运算符*或/或无循环。 当我这样做时,我得到了超过最大调用堆栈大小的错误 function multiply(x,y){ let positif = x + multiply(x, (y-1)) **let negatif = x + multiply(x,(y+1))** this is not working if(x<y) return mult
multiply
函数,它以两个数字作为参数
并返回这两个数相乘的结果,而不使用运算符*或/或无循环。
当我这样做时,我得到了超过最大调用堆栈大小的错误
function multiply(x,y){
let positif = x + multiply(x, (y-1))
**let negatif = x + multiply(x,(y+1))** this is not working
if(x<y) return multiply(y,x)
if((x>0) && (y>=1)){
return positif
}if (x>0 || y<= -1){
return negatif
}
}
函数乘法(x,y){
设positif=x+乘(x,(y-1))
**让negatif=x+乘(x,(y+1))**这不起作用
如果(x0)&(y>=1)){
返回位置
}如果(x>0 | | y,该站点提供了一个很好的例子。您可以通过检查输入是否为负数来扩展此功能,以处理预期结果小于0的数字
function multiply(a, b){
return ("i").repeat(a).repeat(b).length
}
对于(正)整数值,可以通过使用位移位添加奇数值来使用
函数乘法(a,b){
如果(!a){返回0;}
返回a&1
?b+乘法(a>>1,b>1,b好的,问题出在哪里?请提供更多信息。到目前为止,听起来我们应该解决你的家庭作业。它是否只适用于(正)整数?对数如何?
a b sum comment
-- -- ---- -----------------
5 7 7 add b if a is odd
2 14 7
1 28 35 add b if a is odd
0 56 35 result
^----------- exit condition