【软考】递归调用

来源:互联网 发布:萨龙网络 编辑:程序博客网 时间:2024/06/07 17:22

是什么?

      简单的说:递归就是在程序的运行过程中调用自己。

      官方讲解:

       递归调用是一种特殊的嵌套调用,是某个函数调用自己,而不是另外一个函数。递归调用一种解决方案,一种是逻辑思想,将一个大工作分为逐渐减小的小工作,比如说一个和尚要搬50块石头,他想,只要先搬走49块,那剩下的一块就能搬完了,然后考虑那49块,只要先搬走48块,那剩下的一块就能搬完了……,递归是一种思想,只不过在程序中,就是依靠函数嵌套这个特性来实现了。

 

 什么时候用?

      1)数据的定义是按照递归定义的。

      2)问题解法按照递归算法实现。

      3)数据的结构形式是按递归定义的。

                如:二叉树、广义表,由于结构的本身固有的递归特性,则他们的操作可递归的描述。

       

 递归的小程序:

        求斐波那契数列前40项和? 

    

<span style="font-family:KaiTi_GB2312;">public class Fab{public static void main(String[] args){ System.out.println(f(40));}public static int f (int n){if (n <1) {  System.out.println("dkdkdkk");  return -1;}int f1 = 1;int f2 = 1;int f =0;for(int i = 0;i<n-2 ; i++){f = f1 + f2;f1 = f2;f2 = f;}return f ;}}</span>


 结果:

       


递归调用与嵌套调用的区别:

        递归调用是调用方法本身,嵌套调用是调用别的方法。

        

 

递归与循环的区别:

       循环是指在满足条件的情况下,重复执行一段代码。而递归可以理解为重复执行一个方法。

 

递归和其他对比的详细讲解:点我!

0 0
原创粉丝点击