JS递归
这篇博客是我对递归思想的一个理解,记录下来,方便理解。
以一个例子为例,求给定正整数的阶乘,这个例子就可以使用递归来解决。使用递归解决这个阶乘问题可以分为三步:
- 明确递归函数的作用,即求一个给定正整数的阶乘。
- 找出函数退出的条件,阶乘递归当中,当num小于2时,就可以直接跳出了,乘以1时结果不变。
- 找出关系式,阶乘递归当中,10 * 9 * 8 * 7 … * 2 * 1, 类似于 n * n-1。
function factorial(num){
if(num <= 2){
return num;
}
return num * factorial(num - 1);
}
console.log(factorial(4)); // 24
下面这张图显示了该阶乘递归函数运行的过程: