递归函数的介绍及使用案例

这篇具有很好参考价值的文章主要介绍了递归函数的介绍及使用案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

递归函数

含义介绍:

递归函数,实际上就是将一个自定义的函数在运行过程中反复调用他自己,直到遇到结束条件就停止文章来源地址https://www.toymoban.com/news/detail-710680.html

案例一:求阶乘

int len(int n)
{
    if(n == 1)
    {
		return 1;//如果阶乘运算到最后一位(即1),就结束循环
    }
    int sum = n*len(n-1);//n! = (n-1)!*n
    return sum;
}
void test01()
{
    cout<<len(5)<<endl;
}

案例二:求斐波那契数列的第n个数

int num(int n)
{
    if(n ==1||n ==0)//倒序运算到1或0时,就return n;结束循环
    {
		return n;
    }
    else
    {
        return num(n-1)+num(n-2);//n>=2时有这个式子
    }
}
void test01()
{
    int k;
    cin>>k;
    cout<<num(k)<<endl;
}

案例三:全排列

int s[5] = {0,1,2,3,4};//输入数组
int rev(int n)
{
    if (n == 5)
    {
        for (int i = 0; i < 5; i++)
        {
            cout << s[i];
        }
        cout << endl;
    }
    for (int i = n; i < 5; i++)
    {
        swap(s[i], s[n]);//首先确定第一个数
        rev(n + 1);//依次确定第2,3......个数
        swap(s[i], s[n]);//将换了位置的数据复原,以免下次交换数据时产生重复
    }
    return 0;
}
void test01()
{
    rev(0);
}

到了这里,关于递归函数的介绍及使用案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【初阶C语言3】特别详细地介绍函数以及在初阶中重要的算法——递归

     💓作者简介: 加油,旭杏,目前大二,正在学习 C++ , 数据结构 等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏👀 🚚代码仓库:旭日东升 1👀 🌹欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖        从标题也能看出来,我们有要进行 超详细

    2024年02月08日
    浏览(29)
  • MATLAB使用hough变换函数输出[H,theta,rho]的具体含义

    输出[H,theta,rho]。 其中Theta 取值-90至89,为1×180的数组。 rho取值根据图片f的大小确定,如图片为400×400像素,则rho取值-(400^2+400^2)^0.5至(400^2+400^2)^0.5,即图片的对角线长度,为1×1131的数组。 Theta,rho仅为hough变换的坐标取值。hough变换的结果储存于输出的H矩阵中。 H矩阵为rho×

    2024年02月06日
    浏览(28)
  • C++ accumulate函数介绍、具体案例

    accumulate是 numeric 库中的一个函数,主要用来对指定范围内元素求和,但也自行指定一些其他操作,如范围内所有元素相乘、相除等。 使用前需要引入相应的头文件。 函数共有四个参数,其中前三个为必须,第四个为非必需。 若不指定第四个参数,则默认对范围内的元素进行

    2024年02月06日
    浏览(32)
  • UE4元数据关键字的应用与含义,函数的标记和特殊使用(三)

    除了上述和修饰符之外,UE4还有一些其他的和修饰符,如下: UPROPERTY(EditAnywhere, BlueprintReadWrite):表示该变量可以在蓝图编辑器中编辑,并且可以在蓝图中进行读写操作。常用于定义可编辑的蓝图变量。 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly):表示该变量只能在蓝图

    2024年02月04日
    浏览(22)
  • vue递归函数|树形结构或者权限使用

    👉vue获取到树形结构后递归遍历数据,生成树形结构数据,无限级_vue遍历树形数据_常威在打来福~的博客-CSDN博客 需求是:三级联动数据,获取到的数据也是树形结构的,需要不停的往下循环,但是又不确定是几层,那么这样需要用到递归方法。 代码实现:

    2024年02月06日
    浏览(27)
  • 18.5:给定一个栈,请逆序这个栈,不能申请额外的数据结构,只能使用递归函数

    假设我们有一个f方法:可以拿到栈底元素,并保证其他元素栈中顺序不变。 上来就调用f方法,拿到栈底元素 lowValue 。此时stack中栈底元素被拿走了。 这个递归不断的调用f方法,直到栈为空。即:在递的过程中,将栈底元素都收集好了,并且顺序由前往后正好是倒序。 然后

    2024年02月11日
    浏览(28)
  • rabbitmq的介绍、使用、案例

    rabbitmq简单来说就是个消息中间件,可以让不同的应用程序之间进行异步的通信,通过消息传递来实现解耦和分布式处理。 消息队列:允许将消息发到队列,然后进行取出、处理等操作,使得生产者和消费者之间能够解耦,异步地进行通信。 持久性,可靠性的消息传递机制。

    2024年01月20日
    浏览(36)
  • 【递归】:原理、应用与案例解析 ,助你深入理解递归核心思想

    递归在计算机科学中,递归是一种解决计算问题的方法,其中解决方案取决于同一类问题的更小子集 例如 递归遍历环形链表 基本情况(Base Case) :基本情况是递归函数中最简单的情况,它们通常是递归终止的条件。在基本情况下,递归函数会返回一个明确的值,而不再进行

    2024年02月21日
    浏览(33)
  • RabbitMQ特性介绍和使用案例

    ❤ 作者主页:李奕赫揍小邰的博客 ❀ 个人介绍:大家好,我是李奕赫!( ̄▽ ̄)~* 🍊 记得点赞、收藏、评论⭐️⭐️⭐️ 📣 认真学习!!!🎉🎉   RabbitMQ特性 AMQP (高级消息队列协议) 是一个异步消息传递所使用的应用层协议规范,作为线路层协议,而不是API(例如JMS),

    2024年02月11日
    浏览(21)
  • 【Linux操作系统】Linux系统编程实现递归遍历目录,详细讲解opendir、readdir、closedir、snprintf、strcmp等函数的使用

    在Linux系统编程中,经常需要对目录进行遍历操作,以获取目录中的所有文件和子目录。递归遍历目录是一种常见的方法,可以通过使用C语言来实现。本篇博客将详细介绍如何使用C语言实现递归遍历目录的过程,并提供相应的代码示例,同时解释相关函数的使用。 1.1.1 函数

    2024年02月12日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包