在此有效的Fibonacci函数中,它不传递可以存储在数组中的元素数量吗?

问题描述 投票:-1回答:2

这是我的代码,可以正常工作。例如,当n = 5时,它返回5。由于n = 5并定义arr [0] = 0,难道还剩下四个空间来存储从arr [1]到arr [4]的元素吗?但是,似乎可以存储6个元素(从arr [0]到arr [5]),我不知道如何。

int fibonacci(int n) {
    int i;
    int arr[n];
    arr[0] = 0;
    for(i=1; i<=n; i++)
    {
        if(i==1)
        {
        arr[i] = 1;
        }
        else
        {
        arr[i] = arr[i-2] + arr[i-1];
        }

    }
    return arr[n];   
}
c++ arrays fibonacci
2个回答
0
投票
 for(i=1; i<=n; i++)

for循环将在i小于或等于n时运行,这意味着当n = 5时,它将仍然运行。


0
投票

这不是您的问题的答案,只是Fibonacci Sequence的一个更好的实现,以防您错过它。

int fibonacci(int n) {
    if (n < 2) return n;

    return fibonacci(n - 1) + fibonacci(n - 2);
}
© www.soinside.com 2019 - 2024. All rights reserved.