题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方
class Solution {
public:
//快速幂,题目又没给范围,注意指数为负情况,除0错误也可以考虑检查一下,不过OJ应该不会有
double Power(double base, int exponent) {
double ans = 1;
bool flag = false;
if(exponent < 0)
{
exponent = -exponent;
flag = true;
}
while(exponent)
{
if(exponent & 1)
ans *= base;
base *= base;
exponent >>= 1;
}
return flag ? 1/ans : ans;
}
};