题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
常规解法:
class Solution {
public:
double Power(double base, int exponent) {
int abs_exponent = abs(exponent);
double ret = 1.0;
while(abs_exponent--){
ret *= base;
}
return exponent < 0 ? 1/ret : ret;
}
};
快速幂:
class Solution {
public:
double Power(double base, int exponent) {
int abs_exponent = abs(exponent);
double ret = 1.0;
while(abs_exponent){
if(abs_exponent & 1)
ret *= base;
base *= base;
abs_exponent >>= 1;
}
return exponent < 0 ? 1/ret : ret;
}
};