27. 数值的整数次方
实现函数double Power(double base, int exponent),求base的 exponent次方。
算法1
(快速幂)
Java 代码
class Solution {
public double Power(double base, int exponent) {
double LL = 1;
double k = base;
boolean is_i = exponent<0;
int i = (is_i? -(exponent+1): exponent);// -2147483648转换为正数会爆,正数只能2147483647
while(i>0){
if((i & 1) == 1) LL *= k;
k *= k;
i >>= 1;
}
if(is_i) return 1/(LL*base);
return LL;
}
}