Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 接收一个整数并返回传递的数字的阶乘_Java_Package_Factorial - Fatal编程技术网

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

Java 接收一个整数并返回传递的数字的阶乘,java,package,factorial,Java,Package,Factorial,创建两个独立的数学和应用程序包。使用名为MathHelper的类和应用程序。我需要向名为factorial(int)的MathHelper.java类添加静态方法,该类接收一个整数并返回传递的数字的阶乘。一个main方法被添加到调用的应用程序中,并调用Mathhelper.factorial。这是我到目前为止的代码 public class Application { public static void main(String[]args) { System.out.

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

public class Application {

    public static void main(String[]args) {

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


您可以使用以下公式计算阶乘:

循环: 递归:
公共长事实(int-factNum){

如果(factNum),我认为这是正确的总体想法,但是
+
需要
*
-阶乘意味着将大量数字相乘,而不是相加。
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));
        }
    }
}
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);
}