计算第 N 个斐波纳契数

以下方法使用递归计算第 N 个 Fibonacci 数。

public int fib(final int n) {
    if (n > 2) {
        return fib(n - 2) + fib(n - 1);
    }
    return 1;
}

该方法实现了基本情况(n <= 2)和递归情况(n> 2)。这说明了使用递归来计算递归关系。

然而,虽然这个例子是说明性的,但也是低效的:方法的每个单个实例将调用函数本身两次,导致函数在 N 增加时被调用的次数呈指数增长。上述函数是 O(2 N ),但等效迭代解具有复杂度 O(N)。此外,还有一个封闭形式表达式,可以在 O(N) 浮点乘法中进行求值。