您的位置:首页 > 其它

【软考】递归调用

2015-08-29 20:41 274 查看
是什么?
      简单的说:递归就是在程序的运行过程中调用自己。
      官方讲解:
       递归调用是一种特殊的嵌套调用,是某个函数调用自己,而不是另外一个函数。递归调用一种解决方案,一种是逻辑思想,将一个大工作分为逐渐减小的小工作,比如说一个和尚要搬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>


 结果:
       


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




 
递归与循环的区别:
       循环是指在满足条件的情况下,重复执行一段代码。而递归可以理解为重复执行一个方法。
 
递归和其他对比的详细讲解:点我!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: