一、什么是递归?
方法自己调用自己,每次传入不同的参数变量
二、使用递归需遵守的规则
- 执行一个方法时,就创建一个新的受保护的独立空间(栈空间)
- 方法的局部变量是独立的,不会相互影响, 比如n变量
- 如果方法中使用的是引用类型变量(比如数组),就会共享该引用类型的数据.
- 递归必须向退出递归的条件逼近,否则就是无限递归,出现StackOverflowError)
- 当一个方法执行完毕,或者遇到return,就会返回,遵守谁调用,就将结果返回给谁,同时当方法执行完毕或者返回时,该方法也就执行完毕
三、什么样的问题适合递归求解?
- 一个问题的解可以分解为几个子问题的解
- 原问题与分解之后的子问题,除了数据规模不同,求解思路完全一样
- 存在递归终止条件
四、如何写递归代码
- 写出递归公式(注意几分支递归)
- 找到终止条件