第一要素:明确你这个函数想要干什么
//1.计算n!
int f(int n){
}
第二要素:寻找递归结束条件
//计算n!
int f(int n){
if(n <= 1){
return 1;
}
}
第三要素:找出函数的等价关系式
(缩小规模,f(n)是如何得到的? f(n)与f(n-1)的联系)
f(n) =f(n-1) * n;
//计算n!
int f(int n){
if(n <= 1){
return 1;
}
return f(n-1) * n;
}
递归的优化:
案例1:斐波那契数列
优化思路:
如果不优化,会带来指数级的重复运算。
具体思路:设置数组,保存运算结构。 (自底向上)
//1.f(n)表示第n项的值
int f(int n){
if(n <= 2){
return 1;
}
//3.关系式
r