我试图做一个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;
}
}
但它没有用。为什么?
答案 0 :(得分:0)
如果你有一个阶乘函数的迭代版本,这很容易做到:
public static void printFactorial(int n) {
int val = 1;
for (int i = 1; i <= n; i++) {
val *= i;
System.out.println(val);
}
}