接收一个整数并返回传递的数字的阶乘

问题描述 投票:0回答:2

创建两个单独的包数学和应用程序。在一个名为MathHelper和Application的类中。我需要将静态方法添加到名为factorial(int)的MathHelper.java类中,该类接收一个整数并返回传递的数字的阶乘。将一个main方法添加到被调用的应用程序并调用Mathhelper.factorial。这是我到目前为止的代码......

public class Application {

    public static void main(String[]args) {

       System.out.println(MathHelper.doubleInt((9)));   
    }
}

public class MathHelper {
    public static void main(String[]args) {
    }
    public static int fact(int factNum) {
        if (factNum==1) {   
            return 1;
        }
        else {
            return factNum + (fact(factNum - 1));
        }
    }
}
java package factorial
2个回答
-1
投票

您可以使用以下方法计算阶乘:

循环:

public long fact(int factNum) {
    long fact = 1;
    for (int iteration = 2; iteration <= factNum; iteration++) {
        fact = fact * iteration;
    }
    return fact;
}

流:

public long fact(int factNum) {
    return LongStream.rangeClosed(1, factNum)
            .reduce(1, (long fact, long iteration) -> fact * iteration);
}

递归:

public long fact(int factNum) {
    if (factNum <= 2) {
        return factNum;
    }
    return factNum * fact(factNum - 1);
}
© www.soinside.com 2019 - 2024. All rights reserved.