基本递归方法 - 阶乘

bob*_*bob 4 java recursion factorial

我正在练习递归,我不明白为什么这种方法似乎不起作用.有任何想法吗?

    public void fact()
    {
        fact(5);
    }

    public int fact(int n)
    {
        if(n == 1){
            return 1;
        }
        return n * (fact(n-1));
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Ant*_*ney 12

你的代码似乎工作,但你没有做任何事情与返回值,方法调用factfact(5)在一个内部,System.out.println看看你得到了什么.


pol*_*nts 6

递归部分很好; 你只是没有使用它return被丢弃的价值.这是一个完整的Java因子代码应用程序,略微用于教育目的:

public class Factorial {
    public static String fact(int n) {
        if(n == 1){
            return "1";
        }
        return n + " * " + (fact(n-1)); // what happens if you switch the order?
    }
    public static void main(String[] args) {
        System.out.println(fact(5));
        // prints "5 * 4 * 3 * 2 * 1"
    }
}
Run Code Online (Sandbox Code Playgroud)