算法题--求N的阶乘

什么是阶乘?

  阶乘(factorial)是基斯顿·卡曼(Christian Kramp,1760 – 1826)于1808年发明的运算符号,
阶乘,也是数学里的一种术语。
  阶乘是指从1乘以2乘以3乘以4一直乘到所要求的数。

  例如:所要求的数是4,则阶乘式是1×2×3×4,得到的积是24,24就是4的阶乘;
  例如:所要求的数是6,则阶乘式是1×2×3×……×6,得到的积是720,720就是6的阶乘;
  例如:所要求的数是n,则阶乘式是1×2×3×……×n,设得到的积是x,x就是n的阶乘;

找规律: N! = (n-1) ! * n

找出口: n == 0 || n == 1 时,return 1

找临界点: n < 0

public static int getJieCheng(int n) {

    if(n < 0) {
        throw new ValidateException("非法参数!参数不能小于0");
    }
    
     if(n == 0 || n == 1) {
        return 1;
    }
    
    return getJieCheng(n-1) * n;
}

注意:此算法题主要考察递归的编程能力。

猜你喜欢

转载自blog.csdn.net/qq_44781435/article/details/113335919