1.什么是递归函数,
递归函数其实就是一个函数直接或间接调用自身的一种方法。如果一个函数在他的函数内部调用自己,这个函数就是递归函数。
2.使用递归函数需要具备哪些条件?
1.首先,可以把一个问题转化为一个新的问题,而这个新的问题的解决方法仍然与原问题的解决方法相同。只是所处理的对象有所不同,并且这些被处理的对象之间是有规律的,这种规律可以通过一些递归的表达式表示出来。
2.递归函数必须有一个明确的结束递归的条件,否则进入死循环。
3.递归函数的分析过程
1.首先,找到临界点,既无需计算,就能够得到的值;
2.然后,找到这一次和上一次的关系,其实就是找到递归的表达式;
3.最后,return这个表达式。
4.递归函数的案例
1.简单的案例:计算1+N的和
问题分析:
1.先封装一个函数sum,然后找出临界点,当N=1时就直接返回1
2.然后假设计算到100的和,其实就是sum(99)+100,即99的和加上100,得到以下表达式:sum(100)=sum(99)+100
3.return这个表达式
function sum(n) {
if(n == 1) {
return 1;
}
return sum(n-1) + n;
}
console.log(sum(3));
console.log(sum(100));
5.递归函数的优缺点
优点:代码简洁、易懂。
缺点:如果调用层数比较深,会占用过多的内存资源,对执行效率有一定的影响。