Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 阶乘函数调用自身_Javascript_Function - Fatal编程技术网

Javascript 阶乘函数调用自身

Javascript 阶乘函数调用自身,javascript,function,Javascript,Function,我遇到了这个函数,它工作得很好,但是我不明白为什么在阶乘函数中可以调用阶乘。有人能给我解释一下吗 function factorial(n) { if(n ==0) { return 1; }else{ return factorial(n-1) *n; } } console.log(factorial(8)); //Logs 40320 这叫做递归。什么是递归 递归只在函数调用自身时发生 您可以在JavaScript中找到更多信息,这是一种称为递归的软件工程数据

我遇到了这个函数,它工作得很好,但是我不明白为什么在阶乘函数中可以调用阶乘。有人能给我解释一下吗

function factorial(n) {
  if(n ==0) {
    return 1;
  }else{
    return factorial(n-1) *n;
  }
}
console.log(factorial(8));
//Logs 40320

这叫做递归。什么是递归

递归只在函数调用自身时发生

您可以在JavaScript中找到更多信息,这是一种称为递归的软件工程数据结构和算法概念

递归是函数调用自身的编程概念。对于阶乘函数,根据观察,对于所有大于1的整数n,阶乘n=n*阶乘n-1。例如。factorial5=5*factorial4 这意味着,在实现中,函数可以使用n-1调用自己,并将结果乘以n

你可以从中读到更多


递归已经完成。

请阅读此代码,这是有效的

函数因式化枚举{ //步骤1.创建变量结果以存储num var结果=num; //如果num=0或num=1,阶乘将返回1 如果num==0 | | num==1 返回1; //步骤2.创建WHILE循环 而num>1{ num-;//每次迭代递减1 result=result*num;//或result*=num; /* num num-var result result*=num 第一次迭代:5 4 5 20=5*4 第二次迭代:432060=20*3 第三次迭代:3 2 60 120=60*2 第四次迭代:21120=120*1 第五次迭代:10120 WHILE循环的结束 */ } //步骤3.返回所提供整数的阶乘 返回结果;//120 }
console.logfactorialize5;这叫做递归为什么阶乘可以在阶乘中引用。-因为它是在作用域中声明的函数。询问者不是问如何生成阶乘函数,而是问他们发布的递归函数如何工作