1、基本说明
递归调用就是在当前的函数中调用当前的函数并传给相应的参数,这是一个动作,这一动作是层层进行的,直到满足一般情况的的时候,才停止递归调用,开始从最后一个递归调用返回。
简单的说:递归就是方法自己调用自己,每次调用是传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码变得整洁。
递归本质:程序调用自身的编程技巧叫做递归。
2、递归需要满足三个条件:
- 边界条件
- 递归前进段
- 递归返回段
当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
3、递归能解决什么问题?
- 各种数学问题:8皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子的问题(google编程大赛)
- 各种算法中也会使用到递归,比如快排,并归排序,二分查找,分治算法等。
- 将用栈解决的问题--->递归代码比较简洁
4、递归举例
4.1打印问题
public class TestRecursion {
public static void main(String[] args) {
a a = new a();
a.test(4);
}
}
class a {
public void test(int n) {
if