嵌套方法调用java

时间:2017-03-15 17:55:40

标签: java

这是我的代码:

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

4 个答案:

答案 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);