Recursion_tutorial
搞明白递归
摘自帅地学编程
递归三大要素
- 明晰这个函数的用处
- 函数的功能,达到什么目的
寻找递归结束的条件
- 找出递归的结束条件(当参数为傻时,递归结束,之后直接把结果返回)
1
2
3
4
5int f(int n){
if(n==1){
return 1;
}
}
- 找出递归的结束条件(当参数为傻时,递归结束,之后直接把结果返回)
找出函数的等价关系
- 不断缩小参数的范围,如:f(n)=n*f(n-1)
1
2
3
4
5
6int f(int n){
if(n<=2){
return n;
}
return f(n-1)*n;
}
- 不断缩小参数的范围,如:f(n)=n*f(n-1)
例题
反转链表递归(不大懂,循环法√)
递归->递推
递归是从上往下递归的,直到递归到最底,再一层一层返回。
- eg:f(3)=f(2)+f(1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14public int f(int n){
if(n<=2)
return n;
int f1=1;
int f2=2;
int sum=0;
for (int i=3;i<=n;i++){
sum=f1+f2;
f1=f2;
f2=sum;
}
return sum;
}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!