Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Recursion JAVA中的递归阶乘升序打印_Recursion - Fatal编程技术网

Recursion JAVA中的递归阶乘升序打印

Recursion JAVA中的递归阶乘升序打印,recursion,Recursion,我想做一个递归的阶乘函数。我的第一次尝试是: public static int printFactorial(int n){ if(n<=1){ System.out.println(n); return 1; } else{ System.out.println(n); return printFactorial(n-1)*n;

我想做一个递归的阶乘函数。我的第一次尝试是:

public static int printFactorial(int n){

        if(n<=1){
            System.out.println(n);
            return 1;
        }
        else{
            System.out.println(n);
            return printFactorial(n-1)*n;   
        }

    }
这很酷,但我怎样才能得到这样的升序打印:

1 
2
3
public static int printFactorial(int n){
        int m=0;
        if(m==n){
            System.out.println(m);
            return m;
        }
        else{
            System.out.println(m);
            return printFactorial(m+1)*m;   
        }

    }
我试着这样做:

1 
2
3
public static int printFactorial(int n){
        int m=0;
        if(m==n){
            System.out.println(m);
            return m;
        }
        else{
            System.out.println(m);
            return printFactorial(m+1)*m;   
        }

    }

但它不起作用。为什么?

如果您有阶乘函数的迭代版本,这很容易做到:

public static void printFactorial(int n) {

    int val = 1;
    for (int i = 1; i <= n; i++) {
        val *= i;
        System.out.println(val);
    }
}
publicstaticvoidprintfactrial(intn){
int-val=1;

对于(int i=1;我可以为n=4提供所需的输出吗?