是否可以创建一个将单个 int 作为参数并将传递的 int 返回到 10 次方的递归方法?
这是我到目前为止所拥有的,但我收到 StackOverFlow 错误:
public static int exponent(int baseNum) {
return baseNum * exponent(baseNum);
}
您忘记告诉递归函数何时停止递归。它会永远消失,这就是你得到堆栈错误的原因。
public static int exponent(int baseNum, int exp) {
if (exp == 0)
return 1;
else
return baseNum * exponent(baseNum, --exp);
}
现在您可以通过调用获得 32^10:
exponent(32, 10);
如果你想要一个专门的函数来将一个数字提高到 10 的幂,那么你可以重载指数方法:
public static int exponent(int baseNum) {
return exponent(baseNum, 10);
}
当然,仅适用于指数值 >= 0。