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提供所需的输出吗?