这是我的代码,可以正常工作。例如,当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];
}
for(i=1; i<=n; i++)
for循环将在i小于或等于n时运行,这意味着当n = 5时,它将仍然运行。
这不是您的问题的答案,只是Fibonacci Sequence的一个更好的实现,以防您错过它。
int fibonacci(int n) {
if (n < 2) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}