C#算法—递归详解

         递归是很方便的一种算法,下面对递归算法进行详细解答。

    1.函数递归:递归的本质就是自己调用自己。

    2.递归的定义:递归本身就是一个循环。

    3.递归的思想:越来越接近已知值。

    4.递归的总结:1)通过自己调用自己吧复杂的逻辑简单化,可以求得最终结果;

                  2)递归要有开始条件,也要有一个结束条件;

                  3)有一种递归的逻辑运算。

    看到递归的定义可能感觉定义中并没有完全的解释清楚什么是递归?递归怎么用?接下来进入实战,利用简单的例子来深入了解递归的奥妙。

    实战内容是斐波那契数列,斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584........;斐波那契数列的特点就是从第三项开始,每一项都等于前两项之和。我们用递归实现斐波那契数列,代码如下:

       递归的思想就是这样,反向理解就可以理解为为了求第n项的数字,我们要先求第n-1项和第n-2项,然后第要求第n-1项又要求第n-2项和第n-3项,这样依次类推我们一定会求到第一项和第二项,而第一项和第二项的答案我们是知道的,所以这时就可以回推回去,最终求出答案。

       举例说明:例如我们要求斐波那契数列的第5项,第5项等于第4项加第3项,而第4项和第3项我们也是未知的,所以我们的问题转化为求第4项加第3项,再继续求解,我们的问题中第3项等于第2项加第1项,第1、2项我们知道结果,从而把答案返回到第3项 ,求出第3项为2,同理我们可求第4项为3,我们再返回上一层,第5项等于第4项加第3项,从而得出第5项的结果为5.

       斐波那契数列的根本思想就是反复调用自身,使得我们越来越接近已知答案,当我们获取到已知答案的那一刻,函数瞬间回推,推出我们想要求出的结果。

       我们可以在举一个例子,我们求10!,阶乘同样可以利用递归实现,代码如下:

       

        记住递归的思想,递归就很容易理解了。

  • 13
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值