题目链接:50. Pow(x, n)

题解:

快速幂应用!

题目简述:

浮点数的幂运算!

题解:

详见之前的这道题详解!

不同之处,可能有负数,一个数的负数次幂,等于1 除以正数次幂,判断一下即可!

注意:由于有负数,要求绝对值可能会越界,使用LL强转一下即可!

AC代码:

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public:
double myPow(double x, int n) {
typedef long long LL;
double res = 1;
for(LL k = abs((LL)n); k; k >>= 1){
if(k & 1) res *= x;
x *= x;
}
return n > 0 ? res : 1 / res;
}
};