js数据结构与算法—— 递归

96 阅读1分钟

1.认识递归

递归通常的表现是函数调用自身; 注意:递归要有停止条件。

2.阶乘中的递归

数n的阶乘,定义为n!,表示1到n的整数的乘积。

2.1迭代阶乘

function factorialIterative(number) {
    if (number<0) {
        return undefined;
    }

    let total = 1;
    for (let n = number; n>1; n--) {
        total = total * n;
        
    }
    return total;
}
console.log(factorialIterative(5));

2.2 递归阶乘

function factorial(n) {
  if (n === 1 || n === 0) {
    return 1;
  }
  return n * factorial(n - 1);
}
console.log(factorial(5));

使用递归时,会调用栈; 注意:调用栈有大小限制,防止爆栈出错。