int memo[MAX_N + 1]
int fib(int n){
if(n <= 1) return 1;
if(memo[n] != 0)
return memo[n];
return memo[n] = fib(n-1) + fib(n-2);
}
由于fib(i)每次计算时都会调用递归函数,多次计算,当我们将已计算过的斐波那契数保存下来,就可以减少时间。
转载自图书《挑战程序设计竞赛》第2版 P27
int memo[MAX_N + 1]
int fib(int n){
if(n <= 1) return 1;
if(memo[n] != 0)
return memo[n];
return memo[n] = fib(n-1) + fib(n-2);
}
由于fib(i)每次计算时都会调用递归函数,多次计算,当我们将已计算过的斐波那契数保存下来,就可以减少时间。
转载自图书《挑战程序设计竞赛》第2版 P27