我想获得显示类似 1*2*3*4
的输出,但我得到的是 4*3*2*1
这是我的代码:
public static int fact(int n)
{
if(n ==1)
return 1;
else
return n * fact(n-1);
}
public static int factorForm(int n)
{
System.out.print(n);
if (n == 1)
return 1;
else
{
System.out.print("*");
return n + '*' + factorForm(n-1);
}
}
最佳答案
你正在调用 fact(4)
然后打印
然后调用 fact(3)
如果你反转你会得到你想要的:
public class fact {
static int f(int n)
{
if (n ==1 )
{
System.out.print(1);
return 1;
}
int ret= (n * f(n-1));
System.out.print("*");
System.out.print(n);
return ret;
}
public static void main(String[] args)
{
int ret=f(4);
System.out.print("=");
System.out.println(ret);
}
}
关于java - 递归阶乘公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20089798/