题目:
Implement pow(x, n).
解答:
class Solution {
public:
double myPow(double x, int n) {
double base = n > 0 ? x : 1 / x; //n可能为负数
double res = 1;
while(n != 0)
{
if(n & 1) //判断二进制中的最后一位是1还是0
{
res *= base;
}
base *= base;//更新base
n = n / 2;//不能用n = n >> 1,在n小于0的时候会出现错误(算术右移)
}
return res;
}
};