Dvo*_*ole 1 c algorithm recursion
我写了一个简单的函数来计算斐波纳契数,但它会进入无限循环和崩溃.我似乎无法找到这里的问题.
#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;
}
Run Code Online (Sandbox Code Playgroud)
这一行包含错误
int result = fib(number - 1, cache) + (number - 2, cache);
Run Code Online (Sandbox Code Playgroud)
fib不见了.它应该是
int result = fib(number - 1, cache) + fib(number - 2, cache);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1365 次 |
| 最近记录: |