http://算法
今天我想写一点关于递归的思想,就是我我的对递归的了解。首先从一个故事讲起:从前一座山山里有个和尚在讲故事讲什么故事呢?从前有座山山里有个和尚再讲故事........ide
一: 递归算法解决问题的特色: 函数
(1) 递归就是在过程或函数里调用自身(自力更生解决问题吧!)。spa
(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口(好了咋就出来别舍不得哈哈)。设计
(3) 递归算法解题一般显得很简洁,但递归算法解题的运行效率较低。因此通常不提倡用递归算法设计程序(好是好东西就是太浪费内存了)。递归
(4) 在递归调用的过程中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易形成栈溢出等。因此通常不提倡用递归算法设计程序。内存
n=1 | step5 |
n=2 | step4 |
n=3 | step3 |
n=4 | step2 |
n=5 | step1 |
public static void main(String[] args) {
int x =f(5);
System.out.println(x);
}
public static int f(int n){
if(n==1)
return 1;
return n+f(n-1);ci
1 | f(1)=1 |
2 | f(1)+2=3 |
3 | 3+f(2)=6 |
4 | 4+f(3)=40 |
5 | 5+f(4)=15 |
递归过程get