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

时间:2019-03-10 00:14:14

标签: java package factorial

创建两个独立的软件包数学和应用程序。在任一类中都有一个名为MathHelper和Application的类。我需要将静态方法添加到名为Factorial(int)的MathHelper.java类中,该方法接收一个整数并返回传递的数字的阶乘。将一个主要方法添加到名为的应用程序中,并调用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));
        }
    }
}

2 个答案:

答案 0 :(得分:-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);
}

答案 1 :(得分:-1)

package application;
import mathematics.MathHelper;

public class Application {

    public static void main(String[] args) {
        System.out.println(MathHelper.fact((9)));

    }   
}

package mathematics;

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));
        }
    }
 }