何为递归呢?
个人理解为是一个加强版的for循环,在没有判断条件的时候,它会变成死循环,无限循环下去;
但利用的好,可以大大简化某些操作:
实例:
/*输入一个数值算他的阶乘*/
function add(n) {
if (n == 1) {
return 1;
}
return n * add(n - 1);
}
console.log(add(5));
步骤:
1.5*add(4)
2.5*(4*add(3))
3.5*(4*(3*(add(2))))
4.5*(4*(3*(2*1)))
/*利用递归函数求斐波那契数列(兔子序列) 1、1、2、3、5、8、13、21...用户输入一个数字 n 就可以求出 这个数字对应的兔子序列值*/
//思路,从第二项开始的每个值都是前面两个值相加之和所以:
function fb(n) {
if (n === 1 || n === 2) {
return 1;
}
return fb(n - 1) + fb(n - 2);
}