1. 程式人生 > >使用java計算一個數的階乘--遞迴

使用java計算一個數的階乘--遞迴

1.計算一個數的階乘,不使用遞迴

    /**
     * 列印5的階乘到控制檯
     * 注意java中資料型別的最大值:
     * Integer.MAX_VALUE=2147483647;
     * Long.MAX_VALUE=9223372036854775807;
     * Double.MAX_VALUE=1.7976931348623157E308
     */
    @Test
    public void getFactorial02(){
        //列印5的階乘到控制檯
        int num = 5;
        int factorial = num;
        if (num==1){
            factorial = 1;
        }else {
            for (int i=1;i<num;i++){
                factorial *= num-i;
            }
        }
        System.out.println(factorial);
    }

2.計算一個數的階乘,使用遞迴

    /**
     * 遞迴求一個數的階乘,列印5的階乘到控制檯
     * 注意java中資料型別的最大值:
     * Integer.MAX_VALUE=2147483647;
     * Long.MAX_VALUE=9223372036854775807;
     * Double.MAX_VALUE=1.7976931348623157E308
     */
    @Test
    public void getFactorial01(){
        //列印5的階乘到控制檯
        System.out.println(factorial(5));
    }

    /**
     * 計算一個數的階乘
     * @param num
     * @return
     */
    private int factorial(int num){
        if (num<=1){
            return 1;
        }else {
            return num * factorial(num-1);
        }
    }