使用javascript进行编程的递归[关闭]

问题描述 投票:-5回答:2

了解有关javascript中函数的信息,但我不明白该函数如何返回720作为对其执行的操作的答案。

function factorial(num) {
    if(num <= 0) {
        return 1;
    }else {
        return (num * factorial(num-1) )
    }
}
console.log(factorial(6)) // logs 720. why? 

Here is the link to the tutorial on tutorialspoint, under recurring function我已经尝试在firefox控制台上使用它,但仍然不知道为什么720

这是我认为应该记录的内容

function factorial(num) {
    if(num <= 0) {
        return 1; // won't return, because 6 is greater and not equal to 0 
    }else {
        return (num * factorial(num-1) ) // bracket first(6-1), 
           //then multiply by 6 (6 * 5 = 30)
    }
}
console.log(factorial(6)) // 30

请帮助,显然我是犯错的人!

请原谅我,如果这是一个新手在这个网站上提问的方式,我必须创建这个帐户,以期得到答案,谢谢。

javascript function recursion
2个回答
0
投票

console.log(fractional(6));

这将调用小数函数,并且num将为6。

function factorial(num) { // num will be 6
   if(num <= 0) { // 6 greater than 0, hence false and goes to else block
       return 1;
   }else {
       return (num * factorial(num-1) ) //return 6 * factorial(5); Here again factorial function will be executed with value 5 and so on.
   }
}

这些称为递归函数。有关更多详细信息和说明,请检查here


2
投票

如果您确实阅读了所链接页面的描述:

递归是一种通过重复调用一个函数直至其结果的方法来迭代操作的技术。当您需要在循环中使用不同的参数重复调用同一函数时,最好应用递归。

就这样。 “具有反复调用的函数”。return (num * factorial(num-1) )行再次调用该函数(重复);

© www.soinside.com 2019 - 2024. All rights reserved.