底可能为0, 指数可能为负数,负数取余还是负数,例如 -3 % 2 = -1
public class Solution {
public double Power(double base, int n) {
if (base == 0) return 0;
if (n == 0) return 1;
if (n == 1) return base;
if (n == -1) return 1 / base;
double half = Power(base, n / 2);
double mod = Power(base, n % 2);
return half * half * mod;
}
}
网友评论