Java - n的阶乘计算

用递归方法,求10!的阶乘

分析:

  1. f(n) = n * f(n-1)           n != 1        -----        递推公式
  2. f(n) = 1                       n = 1      -----         结束条件

代码:

public class TestDiGui {
    public static void main(String[] args) {
        System.out.printf("%d! = %s", 10, fac(10));
    }
    
    static long fac(int n) {
        if(n == 1) {
            return 1;
        }else {
            return n * fac(n-1);
        }
    }
}

代码分析:

当n = 10时,调用f(10),f(10)调用f(9),f(9)调用f(8),....,f(2)调用f(1),f(1)返回1,f(2)返回2 * 1,...,f(8)返回8 * 7 * 6 * 5 * 4 * 3 * 2 * 1,f(9)返回9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1,f(10)返回10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1,结果被printf打印输出

如图:

输出结果:

 

posted on 2019-03-21 09:47  kl_1998  阅读(2738)  评论(0编辑  收藏  举报

导航