剑指offer 16 数值的整数次方
注意指数为负数的情况,此时可以base=1/base;exp=-exp再进行后续运算
public class Solution {
public double Power(double base, int exponent) {
if(exponent==0)
return 1;
if(exponent==1)
return base;
if(base==0)
return 0;
double ans=1.0;
if(exponent<0){
exponent=-exponent;
base=1/base;
}
if(exponent%2==0){
ans=Power(base,exponent>>2)*Power(base,exponent>>2);
}
else
ans=base*Power(base,exponent>>2)*Power(base,exponent>>2);
return ans;
}
}
查看15道真题和解析