javascript - JS没有运算符的递归乘法函数
问题描述
我想创建一个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
}
}
解决方案
网站https://medium.com/@ctrlalt_diljeet/multiply-without-using-in-javascript-890857bb003c提供了一个很好的例子。您可以通过检查输入是否为负来扩展它以处理预期结果小于 0 的数字
function multiply(a, b){
return ("i").repeat(a).repeat(b).length
}
推荐阅读
- c - C 标准库中的任何函数是否隐式使用`stderr`?
- php - 从 PHP 文件调用“npm run generate”会导致“npm ERR!code ELIFECYCLE”
- javascript - Javascript React - 不导航到重定向页面
- android - 如何通过重新安装应用程序使房间数据库保持不变?
- excel - 在 MATLAB 中使用 Excel 表行名称作为变量名称
- c++ - 在计算器中,如果运算符错误,它应该只询问运算符
- php - 无法从 TinyMCE 中的 SQL 以正确的形式检索数据
- swift - 使用 Swift 为 Decodable 类型创建通用数据初始化器
- reactjs - 接受多个函数签名的正确方法
- reporting-services - Reporting Service Pagination Problem with IE