2014-03-26 55 views
0

我正在尝试做一个recurisve阶乘函数。我的第一个尝试是:在JAVA中递归阶乘升序打印

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

    } 

但它没有奏效。为什么?

+0

你能提供所需的N = 4输出? –

回答

0

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

public static void printFactorial(int n) { 

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