Java - n的阶乘计算
用递归方法,求10!的阶乘
分析:
- f(n) = n * f(n-1) n != 1 ----- 递推公式
- 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打印输出
如图:
输出结果: