JZ12-数值的整数次方
数值的整数次方
https://www.nowcoder.com/practice/1a834e5e3e1a4b7ba251417554e07c00?tpId=13&tags=&title=&diffculty=0&judgeStatus=0&rp=1&tab=answerKey
class Solution { public double Power(double base, int exponent) { if (base == 0) { return 0.0; } if (exponent == 0) { return 1.0; } double temp = base; //2 * 2 = 4 ,下一轮是 4 * 2 不是 4 * 4 for (int i = 0; i < Math.abs(exponent) - 1; i++) { base = base * temp; } if (exponent > 0) { return base; } else { return 1 / base; } } //幂计算 public double Power2(double base, int exponent) { if (base == 0) { return 0.0; } if (exponent == 1) { return base; } boolean isNegative = false; if (exponent < 0) { exponent = -exponent; isNegative = true; } double pow = Power2(base * base, exponent / 2); //如果 2 ^ 4 = 4 ^ 2 = (2 * 2) ^ 2 if (exponent % 2 != 0) { //如果 2 * 3 = (2 * 2) * 2 = 4 * 2 pow = pow * base; } return isNegative ? 1 / pow : pow; } }