中国人民大学考研经验:c语言中,函数的嵌套调用称作递归?

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 03:31:19

函数自己调用自己才叫递归,像a调b,b又调c就叫嵌套调用。
递归只是一种嵌套。

嵌套调用这个名词是没有任何意义的,看到那本书上有这个名词赶紧扔掉吧!
递归是函数(或过程其他语言)直接或间接调用自已的做法!例如
1)直接递归调用
int f(int n){if(n==0)return 1;/*必须有这样的一步*/
return n*f(n-1);/*当然象这样简单计算不需要用递归!*/
}
2)问接调用
double g(double x,int n);
doube f(double x,int n){if(x<=0&&n<=0)retun 0;
if(n==0)return 0;if(n==1)return x;
if(n<0)return f(1/x);
if(n&1)return x*g(x,n/2);
return g(x,n/2);
}
double g(double x,n){return f(x*x,n);}

递归就像两个函数f1(),f2();f1在解决问题时要用到f2,而f2在解决问题时要用到f1,但这不是死循环,汉若塔就是一个典型的例子!