LeetCode50 Pow(x, n)


描述

Implement pow(x, n).

样例

1
2
Input:
2 3
1
2
Output:
8

思路

计算$x^n$,其中​为浮点数,​为整数。

使用快速幂算法,注意特判小于0的情况。

快速幂算法

代码

1
2
3
4
5
6
7
8
9
10
class Solution {
public:
double myPow(double x, int n) {
double ans = 1;
long long p = n;
if (n < 0) p = -1LL * n, x = 1.0 / x;
for (; p; p >>= 1, x = x*x) if (p & 1) ans *= x;
return ans;
}
};