递归是一种在函数中调用自身的方法。它通常用于解决可以被分解成较小且与原问题结构相似的子问题的情况。下面是一个使用递归算法计算斐波那契数列的示例代码:
代码示例1
function fibonacci(n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
console.log(fibonacci(6)); // 输出:8
代码中的函数 fibonacci(n)
接受一个参数 n,表示要计算斐波那契数列的第 n 个数字。如果 n 小于等于 1,直接返回 n。否则,递归调用 fibonacci 函数计算第 n-1 和 n-2 个数字,并将它们相加返回。
在代码的最后一行,调用 console.log(fibonacci(6))
来输出斐波那契数列的第 6 个数字,结果为 8。
代码示例2
// 高级递归示例:计算斐波那契数列的第 n 个数字
function fibonacci(n) {
// 基准情况:当 n 为 0 或 1 时,直接返回 n
if (n === 0 || n === 1) {
return n;
}
// 递归调用:将问题分解为更小的子问题,并将结果相加
return fibonacci(n - 1) + fibonacci(n - 2);
}
// 调用函数并输出结果
const result = fibonacci(10); // 计算斐波那契数列的第 10 个数字
console.log(result); // 输出结果: 55