其实递归我们经常用
但是到底如何定义递归?
到底什么情况下使用递归?
递归能将复杂问题简单化,但是递归的缺点又是什么呢?
带着问题我们先来看两个经典案例:
栗子1
从前有座山,山上有座庙,庙里有个老和尚,在给小和尚讲故事,讲的什么呢?
从前有座山,山上有座庙,庙里有个老和尚,在给小和尚讲故事,讲的什么呢?
从前有座山,山上有座庙,庙里有个老和尚,在给小和尚讲故事,讲的什么呢?
从前有座山,山上有座庙,庙里有个老和尚,在给小和尚讲故事,讲的什么呢?
讲的是一个路边的野花你不要采~
栗子2
int 抱起(int num) {
if(num=1) {
抱起小鲤鱼;
}else {
抱起(num-1);
}
}
呐,以上两个栗子清晰又通俗的解释了递归,我们现在总结一下
1.递归就是重复的做同一件事情
2.递归要有一个结束条件
重复归重复,总要有个头啊,一直重复要累死了,也就是说:
“路边的野花不要采”和“抱起小鲤鱼”这两个都是结束条件
好了,来点官方解释
递归的原理就是数学归纳法
1.证明当n= 1时命题成立。
2.假设n=m时命题成立,那么可以推导出在n=m+1时命题也成立。(m代表任意自然数)
优缺点?看下边的demo吧~