x的递归方法为y的幂

Ada*_*gan 0 java recursion

2,3得到4.会导致什么?

public static int basepowerexp(int base, int exp) {
    if (exp == 0) {
        return 1;
    } else {
        return base * basepowerexp(exp - 1, base);
    }
}

public static void bpe(int base, int exp) {
    System.out.println("The answer to " + base + " to the power of " + exp
            + " is " + power(base));
}
Run Code Online (Sandbox Code Playgroud)

我认为这与以下内容有关:

return base * basepowerexp(exp - 1, base);
Run Code Online (Sandbox Code Playgroud)

但无法弄清楚,我尝试过其他变化.

Ali*_*tfi 5

您必须在函数调用中更改参数的顺序.这个:

return base * basepowerexp(exp-1,base);
Run Code Online (Sandbox Code Playgroud)

对此:

return base * basepowerexp(base, exp - 1);
Run Code Online (Sandbox Code Playgroud)

但是我想知道你说你得到2,3的4!因为我测试的答案是0.

编辑:

正如您所提到的那样,问题仍然存在,我会提出一个正常工作的代码,因为您可以找到问题:

public class MyClass {
    public static void main(String[] args) {
        System.out.println(basepowerexp(2, 3));
    }

    public static int basepowerexp(int base, int exp){
        if (exp == 0) {
            return 1;
        } else {
            return base * basepowerexp(base, exp - 1);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

正是这段代码,8为我打印.如果问题存在,请告诉我.