Java 如何将阶乘的结果接收到另一个类?

Java 如何将阶乘的结果接收到另一个类?,java,Java,问题是接收以前计算的结果 public class FactorialArray { public static long[] factorial = new long[21]; public static int fact = 0; static { factorial[0] = 1; } public static long factorial(int x) { while (fact < x) {

问题是接收以前计算的结果

public class FactorialArray {

    public static long[] factorial = new long[21];
    public static int fact = 0;

    static {
        factorial[0] = 1;
    }

    public static long factorial(int x) {
        while (fact < x) {
            long element;
            factorial[fact] = element.getFact(element);
            fact++;
        }
        return factorial[x];
    }

公共静态长[]阶乘(int x){ 阶乘factorj=新阶乘()

while(事实
factorial[fact]=element.getFact(element)
?我认为您可以使用另一个类,并使用一个简单的返回方法,将实际包含的代码放在main中,这样您就不需要声明任何static,方法返回值。问题是什么?它是如何工作的?它在元素下面加下划线。getFact(元素)返回阶乘[x]这就是为什么它显示为0,我们一直计算到x-1。而是打印阶乘数组。并使用输入值创建数组长度
public class Factorial {

    private long factorialCalculator(int x){
        if(x==0 || x==1)
            return 1;
        else 
            return  (long)x*factorialCalculator(x-1); 
    }

    public long getFact(int x){
        return factorialCalculator(x);
    }
}
    while (fact < x) {
        long element;
        factorial[fact] = factObj.getFact(fact);
        fact++;
    }
    return factorial;
}

static class Factorial {

    private long factorialCalculator(int x) {
        if (x == 0 || x == 1)
            return 1;
        else
            return (long) x * factorialCalculator(x - 1);
    }

    public long getFact(int x) {
        return factorialCalculator(x);
    }
}