简单的递归解释

Jav*_*344 3 java recursion

这是Java中的递归静态方法.

public static int mystery(int m, int n) {
    int result = 1;   

    if (m > 0) {
      result = n * mystery(m-1, n);
    }       

    System.out.println (m + "  " + result);
    return result;
}
Run Code Online (Sandbox Code Playgroud)

如果我们将方法调用为神秘(3,4),将打印到标准输出的内容是什么?什么是神秘召唤(3,4)的最终回报值?

标准输出部分的答案解释是什么?

输出:

0 1
1 4
2 16
3 64
Run Code Online (Sandbox Code Playgroud)

最终返回值为64.

Chr*_*lor 5

考虑n修复(对于所有意图和目的而言)并且让它f(m)成为mystery(m,n).

然后

f(0) = 1
f(1) = n * f(0) = n
f(2) = n * f(1) = n * n
f(3) = n * f(2) = n * n * n
Run Code Online (Sandbox Code Playgroud)

你能看到一般模式吗?你能给一个封闭的表格f(n)吗?