• 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()函数,该函数将显示在屏幕上。

     

  • 相关阅读:
    DevOps中集成自动化测试的具体案例
    「Kafka」监控、集成篇
    JS 流行框架(三):Koa2
    Java基础——重写toString()方法
    Springboot使用Aop保存接口请求日志到mysql(及解决Interceptor拦截器中引用mapper和service为null)
    JSONArray格式转换
    基于Docker部署Dubbo+Nacos服务
    第2章 C语言高级的函数
    2022世界5G大会将设立元宇宙论坛
    基于 Glibc 版本升级的 DolphinDB 数据查询性能优化实践
  • 原文地址:https://blog.csdn.net/m0_48241022/article/details/133657161