函数递归:
函数自己调用自己的行为就叫函数递归,可能会导致死循环、资源耗尽的情况发生
递归是分治算法的具体实现,就是把一个大而复杂的问题,分解成若干个相同的小问题,直到问题全部解决
1、出口
2、解决一个小问题
3、调用自己
如何使用递归实现第n项的斐波那契数列
1 1 2 3 5 8 13 ...
递归调用函数每一次递归i调用都会在栈内存产生一份自己的拷贝,直到到达出口,才一层层向上释放内存,因此使用递归非常浪费内存,与循环相比速度非常慢,能用循环解决的问题不要使用递归
递归的优缺点:
1、耗费内存、速度慢
2、好理解、思路清晰
3、适合解决非线性问题
1、打印出n层汉诺塔的移动过程