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)
但无法弄清楚,我尝试过其他变化.
您必须在函数调用中更改参数的顺序.这个:
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为我打印.如果问题存在,请告诉我.