概述
递归是很方便的一种算法,下面对递归算法进行详细解答。
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!,阶乘同样可以利用递归实现,代码如下:
记住递归的思想,递归就很容易理解了。
最后
以上就是个性彩虹为你收集整理的C#算法—递归详解的全部内容,希望文章能够帮你解决C#算法—递归详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复