http://

今天我想写一点关于递归的思想,就是我个人对递归的了解。首先从一个故事讲起:从前一座山山里有个和尚在讲故事讲什么故事呢?从前有座山山里有个和尚再讲故事........

一: 递归算法解决问题的特点:

 

  (1) 递归就是在过程或函数里调用自身(自力更生解决问题吧!)。

 

  (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);

1 f(1)=1
2 f(1)+2=3
3 3+f(2)=6
4 4+f(3)=40
5 5+f(4)=15

 

                                                             递归过程