递归算法

public class Test {
    public int factorial(int n) {        
        if (n == 1 || n == 0){
            return n;
        }else{
            return n * factorial(n - 1);
        }            
    }
    public static void main(String[] args) {
        Test test = new Test();
        System.out.println(test.factorial(6));
    }
}

递归算法解决问题的特点:

(1) 递归就是在过程或函数里调用自身。

(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。

(3) 递归算法解题通常显得很简洁,但运行效率较低。所以一般不提倡用递归算法设计程序。

(4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。所以一般不提倡用递归算法设计程序

原文地址:https://www.cnblogs.com/zhangxiong-tianxiadiyi/p/10850214.html