指数固定功率的递归方法

时间:2012-10-31 22:36:49

标签: java methods recursion

是否可以创建一个递归方法,该方法将单个int作为参数并将传递的int返回到10的幂?

这是我到目前为止所做的,但我得到了StackOverFlow错误:

public static int exponent(int baseNum) {                       

   return baseNum * exponent(baseNum); 

}

1 个答案:

答案 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。