给定任何指数(负数或正数)和整数类型的基数,我想计算结果。我正在使用递归:

public static double hoch(double basis, int exponent) {
    if (exponent > 0) {
        return (basis * hoch(basis, exponent - 1));
    } else if (exponent < 0) {
        return ((1 / (basis * hoch(basis, exponent + 1))));
    } else {
        return 1;
    }
}


如果指数为负,则返回1.0,但这是错误的。例如hoch(2,-2)应该为0.25。任何想法可能有什么问题吗?

最佳答案

 }else if(exponent < 0){
         return ((1/(basis*hoch(basis, exponent+1))))


应该

 }else if(exponent < 0){
        return (1/hoch(basis, -exponent));

10-08 02:02