(学习)java——递归实现阶乘计算

递归就是方法内部调用这个方法本身,简单来说就是自己调用自己。

1.阶乘公式

n!=n*(n-1)...2*1(n为正整数)=n*(n-1)!

另规定:0!=1

2.循环实现阶乘计算

/**
     * 使用循环的方法完成阶乘计算
     * @param num
     * @return
     */
    public static int forFact(int num) {
        int n = 1;
        //检查输入的是否为正整数
        if (num < 0) {
            System.out.println("负数没有阶乘,请输入正整数");
            return -1;
        }
        //循环次数为num次
        for (int i = 1; i <= num; i++) {
            //进行乘法运算
            n *= i;
        }
        //返回阶乘结果
        return n;
    }

3.递归实现阶乘结算

/**
     * 使用递归的方法完成阶乘计算
     * @param num
     * @return
     */
    public static int fact(int num) {
        if (num < 0) {
            System.out.println("负数没有阶乘,请输入正整数");
            return -1;
        } else if (num == 0) {
            return 1;
        }
        return num * fact(num - 1);
    }


版权声明:本文为Dxiaohei原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。