什么是递归?
递归是一个方法在执行过程中调用自身。相当于数学上的“数学归纳法”,有一个起始条件,一个递推方程。也就是说,满足递归时,应满足方法自己调用自己,还要有一个趋近于终止的条件。
递归执行过程
import java.util.Scanner;
public class textDemo {
public static int fac(int n){
if(n == 1){
return 1;
}else {
return n * fac(n-1);
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println(n + "的阶乘为:");
System.out.println(fac(n));
}
}
5
5的阶乘为:
120
执行过程:
总结
递归是一种重要的编程解决问题的方式.有些问题天然就是使用递归方式定义的(例如斐波那契数列, 二叉树等), 此时使用递归来解就很容易。有些问题使用递归和使用非递归(循环)都可以解决. 那么此时更推荐使用循环, 相比于递归, 非递归程序更加高效。虽然解题容易,但是隐形时间长,在这方面有限制。