递归
简单:
//递归函数
int fact(int n){
if(n==0) return 1;
return n*fact(n-1);
}
编写一个递归函数必须有终止条件,在斐波那契数列里:如果将每次调用结果用数列存起来会不一样,得以,在时间空间上优化。这种方法处于动态规划,记忆化搜索
int fib(int n)
{
if (n<=1) return n;
return fib(n-1)+fib(n-2);
}
//比较
int memo[MAX_N+1];
int fib(int n)
{
if(n<=1) return 1;
return memo[n]=fib[n-1]+fib[n-2];
}