gpt4 book ai didi

javascript - 使用递归函数将两个整数相乘

转载 作者:行者123 更新时间:2023-12-01 03:30:11 26 4
gpt4 key购买 nike

我需要编写一个函数:

给定 2 个整数,它返回两个给定整数之间的乘积,从 num1 开始,不包括 num2。我不想使用 for 循环。

注释:

* The product between 1 and 4 is 1 * 2 * 3 = 6.
* If num2 is not greater than num1, it should return 0.

var output = multiplyBetween(2, 5);
console.log(output); // --> 24

到目前为止我所拥有的内容如下:

function multiplyBetween(num1, num2) {
if (isNaN(num1) || isNaN(num2)) return NaN;
if (num1 === 0 || num2 ===0) return 0;
if (num1 === num2) return 0;
if (num2 < num1){
return 0;
}
else{
while(num1<num2){
return num1 * multiplyBetween(num1 + 1, num2 )
}

}


}

我做错了什么?

最佳答案

问题是,当您到达 num1 == num2 的基本情况时,您将返回 0,然后乘以递归调用,然后再乘以 >0,并最终在所有情况下返回 0

在这种情况下,您应该返回 1 而不是 0

也不需要 while 循环。首先,因为您在循环中无条件返回,所以它永远不会重复。如果确实重复,它将无限重复,因为变量在循环中永远不会改变。

function multiplyBetween(num1, num2) {
if (isNaN(num1) || isNaN(num2)) return NaN;
if (num1 === 0 || num2 === 0) return 0;
if (num1 === num2) return 1;
if (num2 < num1) {
return 0;
}
return num1 * multiplyBetween(num1 + 1, num2)
}

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

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com