递归其实很可爱

其实递归我们经常用

但是到底如何定义递归?

到底什么情况下使用递归?

递归能将复杂问题简单化,但是递归的缺点又是什么呢?


带着问题我们先来看两个经典案例:

栗子1

从前有座山,山上有座庙,庙里有个老和尚,在给小和尚讲故事,讲的什么呢?

从前有座山,山上有座庙,庙里有个老和尚,在给小和尚讲故事,讲的什么呢?

从前有座山,山上有座庙,庙里有个老和尚,在给小和尚讲故事,讲的什么呢?

从前有座山,山上有座庙,庙里有个老和尚,在给小和尚讲故事,讲的什么呢?

讲的是一个路边的野花你不要采~

栗子2


可爱的递归

int 抱起(int num) {

        if(num=1) {

        抱起小鲤鱼;

}else {

        抱起(num-1);

        }

}



呐,以上两个栗子清晰又通俗的解释了递归,我们现在总结一下

1.递归就是重复的做同一件事情

2.递归要有一个结束条件

    重复归重复,总要有个头啊,一直重复要累死了,也就是说:

    “路边的野花不要采”和“抱起小鲤鱼”这两个都是结束条件



好了,来点官方解释

递归的原理就是数学归纳法

1.证明当n= 1时命题成立。

2.假设n=m时命题成立,那么可以推导出在n=m+1时命题也成立。(m代表任意自然数)



优缺点?看下边的demo吧~

递归举例子
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容