Java递归是一种编程技巧,通过在函数内部调用自身来解决问题。递归通常用于解决分治问题,即将一个大问题分解为若干个相同类型的小问题,然后逐个解决这些小问题,最后将结果合并得到大问题的解。
Java递归的基本结构包括以下几个部分:
-
基本情况(Base Case):这是递归终止的条件,当问题规模缩小到一定程度时,可以直接得出结果,不再需要继续递归。
-
递归情况(Recursive Case):这是函数继续调用自身的条件,通常会将问题规模缩小,然后继续调用自身来解决子问题。
-
返回结果:将递归情况下的计算结果返回给上一层调用,以便进行合并。
递归算法中包含:递推、回推、终止条件
方法内部调用方法自己的过程称为递推。
满足方法内部不在调用方法本身的条件称为递归的终止条件,
方法内部返回到上一次调用的过程称为回推
题目:求n! 分析: n的阶乘可以等价于n * (n-1)! 等价于n * (n-1) * (n-2)! 等价于n * (n-1) * (n-2) * (n-3)!直到乘1为止
public static int f(int n){
if(n==1){ //终止条件
return 1; //回推
}
return n * f(n-1); //递推
}
public static void main(String[] args) {
int result = f(4);
System.out.println(result);
}