这是我的代码:
public class Test{
public static void main (String []a){
int x = 3;
System.out.println(fact(x));
System.out.println(fact(4));
System.out.println(fact(fact(3)));
}
public static int fact(int n){
int f=1;
for(int i=1; i<=n;++i)
f = f*i;
return f;
}
}
输出是:
6
24
720
我的问题是如何在第三次印刷声明中获得720
?
答案 0 :(得分:3)
与编程不完全相关,无论如何,我会告诉你:
fact(fact(3)) = fact(3*2*1) = 6! = 6*5*4*3*2*1 = 720
答案 1 :(得分:2)
这只是一个数学问题。
3! = 3x2x1 = 6
(3!)! = (3x2x1)! = 6! = 6x5x4x3x2x1 = 720
你到底在期待什么?
答案 2 :(得分:1)
事实(事实(3):阶乘的因子
首先你需要解决内因子,即事实(3)= 3 * 2 * 1 = 6
现在外部事实(6)= 6 * 5 * 4 * 3 * 2 * 1 = 720
希望这会有所帮助。
答案 3 :(得分:1)
fact(fact(3))
表示获取函数fact(3)
的返回值,并在另一次调用fact
时再次将其用作参数。
将其拆分以更好地理解它。 fact(fact(3))
表示与:
int value = fact(3);
fact(value);