• C++递归函数


    在本文中,您将学习创建递归函数。调用自身的函数。

    调用自身的函数称为递归函数。并且,这种技术称为递归。

    递归在C ++中如何工作?

    void recurse()
    {
        ... .. ...
        recurse();
        ... .. ...
    }
    
    int main()
    {
        ... .. ...
        recurse();
        ... .. ...
    }

    下图显示了递归调用的方式。
     

    递归一直持续到满足某些条件为止。

    为了防止无限递归,可以在一个分支进行递归调用而另一个不进行递归调用的情况下使用if ... else语句(或类似方法)。

     

    示例1:使用递归分解一个数字

    示例

    // n的阶乘 = 1*2*3*...*n
    
    #include 
    using namespace std;
    
    int factorial(int);
    
    int main() 
    {
        int n;
        cout<<"输入一个数字来查找阶乘: ";
        cin >> n;
        cout << "数字 " << n <<" 的阶乘= " << factorial(n);
        return 0;
    }
    
    int factorial(int n) 
    {
        if (n > 1) 
        {
            return n*factorial(n-1);
        }
        else 
        {
            return 1;
        }
    }

    输出结果

    输入一个数字来查找阶乘: 4
    数字 4的阶乘= 24

    用法解释:这个实例是如何工作的?

    假设用户输入了4,并将其传递给该factorial()函数。

    1. 在第一个factorial()函数中,测试if语句为true 内的表达式。return num*factorial(num-1);语句被执行,它调用第二个factorial()函数,传递的参数num-1为3。

    2. 在第二个factorial()函数中,测试if语句为true内的表达式。return num*factorial(num-1);语句被执行,它调用第三个factorial()函数,传递的参数为num-1为2。

    3. 在第三个factorial()函数中,测试if语句为true内的表达式。return num*factorial(num-1);语句被执行,它调用第四个factorial()函数,并且传递的参数是num-1是1。

    4. 在第四个factorial()函数中,测试if语句为false内的表达式。return 1;语句被执行,返回1至第三个factorial()函数。

    5. 第三个factorial()函数将2返回到第二个factorial()函数。

    6. 第二个factorial()函数将6返回到第一个factorial()函数。

    7. 最后,第一个factorial()函数将24返回到main()函数,该函数将显示在屏幕上。

     

  • 相关阅读:
    每日一题:托普利茨矩阵
    packetbeat配置分析
    升级 webpack5 + vue-cli5
    单片机的变量竟然被无故修改了.
    2024年初中生古诗文大会备考:多选题真题和独家解析(持续更新)
    二部图问题
    2022年哪款超短焦投影仪性价比最高?当贝超短焦激光投影仪U1测评值得买
    服务器的操作系统,你选择哪些?
    【python】面向对象程序设计(基础篇)
    concat方法如何用?
  • 原文地址:https://blog.csdn.net/m0_48241022/article/details/133657161