递归
1. 概述
- 以编程的角度来看,递归指的是方法定义中 调用方法本身 的现象
2. 特点
- 把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解
- 递归策略只需要少量的程序就可以描述出解体过程所需要的多次重复计算
3. 内容
- 递归出口:用于结束递归,防止内存溢出
- 递归规则:与原问题相似的规模较小的问题
4. 代码示例
4.1 找规律
public class Demo01 {
public static void main(String[] args) {
int[] arr = new int[20];
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
System.out.println(arr[19]);
System.out.println(f(20));
}
public static int f(int n) {
if (n==1 || n==2){
return 1;
}else {
return f(n - 1) + f(n - 2);
}
}
}
4.2 求阶乘
public class Demo02 {
public static void main(String[] args) {
System.out.println(f(5));
}
public static int f(int n){
if (n==1){
return 1;
}else {
return n*f(n-1);
}
}
}