题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
注意题目也可能出更大的数,最好使用longlong来存,有时候也会将结果mod一个值
class Solution {
public:
double Power(double base, int exponent) {
double res = 1.0;
int judge = exponent;
if(judge == 0)
return 1.0;
if(exponent < 0)
exponent = (~exponent) + 1;//* -1
double curr = base;
while(exponent != 0)
{
if((exponent & 1) == 1)
res *= curr;
curr *= curr;
exponent >>= 1;
}
//当judge<0时,还需再次判断res是否等于0,等于0则抛出异常。这里没有做判断
return judge < 0? 1 / res : res;
}
};