我想使用递归来计算2的幂。这是我的代码:
class Aufg1{
public static void main(String args[]){
int erg = zweiHochPositiv(10);
}
public static int zweiHochPositiv(int exponent){
if(exponent > 0)
return (2*zweiHochPositiv(exponent--));
else
return 1;
}
}
我有很多错误
return (2*zweiHochPositiv(exponent--));
但我不知道有什么问题。
最佳答案
更换
return (2*zweiHochPositiv(exponent--));
与
return (2*zweiHochPositiv(exponent - 1));
exponent--
求和为exponent
变量的值,然后递减。因此,当您调用zweiHochPositiv(1)
时,该方法将再次调用zweiHochPositiv(1)
。结果,此方法在使用值> 0进行调用时将无限期递归,并最终使堆栈溢出。