JAVA中的递归因子上升打印

时间:2014-03-26 08:22:44

标签: recursion

我试图做一个recurisve阶乘函数。我的第一次尝试是:

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

    }

它工作正常,但我的打印是:

3
2
1

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

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 个答案:

答案 0 :(得分:0)

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

public static void printFactorial(int n) {

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