我写了一个简单的函数来计算斐波那契数,但它进入了无限循环并崩溃了。我似乎无法在这里找到问题所在。
#include <stdio.h>
int fib(int number, int *cache);
int main(int argc, char *argv[])
{
int cache[20] = {0};
int result = fib (3, cache);
printf("%d ", result);
}
int fib(int number, int *cache)
{
if (number == 0) return 0;
if (number == 1) return 1;
if (cache[number] != 0) return cache[number];
int result = fib(number - 1, cache) + (number - 2, cache);
cache[number] = result;
return result;
}