小编Bur*_*urt的帖子

为什么斐波那契递归序列有效?

我想知道为什么这个斐波那契递归函数有效:

int fibRec(int n)
{
    if ((n == 1) || (n == 0))
    {
        return n;
    }

    int i = fibRec(n - 1) + fibRec(n - 2);
    return i;
}
Run Code Online (Sandbox Code Playgroud)

我了解斐波那契数列是什么,也了解递归函数的作用以及该函数的工作原理。我只是很难理解它为什么有效。我知道,当你将其分解时,你本质上是添加了一堆 0 和 1,如下图所示。

斐波那契递归

但为什么当我将 5 传递给函数并将所有 0 和 1 添加后,它会等于斐波那契数列中的第 5 个数呢?我以前见过这个问题,但从未真正解释过。答案都只是“因为递归”。是的,我知道什么是递归函数以及它是如何工作的。但是为什么这个递归函数会给出正确的斐波那契数列呢?

recursion function fibonacci

1
推荐指数
1
解决办法
557
查看次数

标签 统计

fibonacci ×1

function ×1

recursion ×1