C++ 函数的递归调用

    xiaoxiao2021-03-26  28

    在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归(recursive)调用。包含递归调用的函数称为递归函数。 比如:

    int test(int x) { int y; y = test(x); return(2*y); }

    以上是一个直接调用的例子,递归调用还包括间接调用,比如:

    int first(int x) { int b; b = second(x); return(2*b); } int second(int y) { int a; a = first(y); return(2*a); }

    从上面的程序可以看到,这样执行后会出现无终止的自身调用,所以程序应该加入对用的判断机制,让递归在有限次数后停止。

    举个栗子: 用递归的方式求n!

    #include <iostream> using namespace std; long fac(int); int main() { int n; long y; cout <<"请输入"; cin >>n; y = fac(n); cout<<n<<"!="<<y<<endl; getchar(); getchar(); return 0 ; } long fac(int n) { long f; if (n <0) { cout<<"错误!!!"<<endl; } else if(n== 0||n == 1) f =1; else f=fac(n-1)*n; return f; }

    递归退出的条件:

    else if(n== 0||n == 1) f =1;

    如果n等于0或者等于1,那么执行f等于1,不在调用fac函数,退出了递归。

    转载请注明原文地址: https://ju.6miu.com/read-662312.html

    最新回复(0)