blog 2019.3.4 day7 递归的方法

生活中的递归:套娃 一个套一个 到最后不再套了(最后一个娃-递归出口)
查字典:查一个字,发现解释这个字的内容又有不懂的,接下来查这个字的内容,发现内容里又有不懂的,就继续查。最后根据能理解最后一个内容的意思的时候回过来理解之前那些话的意思。

一旦运用递归来解决问题,一定要设计好递归的 出口
和循环相比,递归对内存资源的消耗 更大
递归对内存消耗非常快,占用的内存成倍的增加。

递归:方法内部再调用本方法–自己调自己
特点:
1、方法里面调用自身
2、在设计递归算法的时候,要有一个明确的递归出口(递归结束条件)。
3、递归算法解题时,通常是比较简洁的。,递归的运行效率比较低,一般 不提倡 用递归。递归算法更考验逻辑。
4、在递归调用过程中,系统每一层返回点(局部变量)都是开辟在内存中,递归很容易造成内存的溢出。

在这里插入图片描述

在这里插入图片描述
递归的过程,return是关键 return的结果又调用的这个方法,导致一直再加,满足这个方法里面的条件(number<1)的时候 才返回这个return后面的值
第一次 number =100 return 100
第二次 number =100 return 100+(100-1)

这时候number = 99了
第三次 number = 99 return100+(99+98)

同样的,累乘也是这样。
在这里插入图片描述

斐波那契数列:
在这里插入图片描述
在这里插入图片描述

递归效率很低,内存占用资源大,不常用。

猜你喜欢

转载自blog.csdn.net/qq_39263750/article/details/88106257
今日推荐