是否可以创建一个递归方法,该方法将单个int作为参数并将传递的int返回到10的幂?
这是我到目前为止所做的,但我得到了StackOverFlow错误:
public static int exponent(int baseNum) {
return baseNum * exponent(baseNum);
}
答案 0 :(得分:2)
你忘了告诉递归函数何时停止递归。它会永远存在,这就是你出现堆栈错误的原因。
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。