leetcode50

实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。


示例:

1
2
输入:x = 2.00000, n = 10
输出:1024.00000


分析:

1
快速幂

代码

  • C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
double myPow(double x, int n) {
if(n == INT_MIN)
return myPow(1 / x, -(n + 1)) / x; // 防止正溢出
if(n < 0)
return myPow(1 / x, -n); // 负数冥转化为倒数的正冥
if(n == 0)
return 1;
else if(n % 2 == 1)
return myPow(x, n - 1) * x;
else
{
double temp = myPow(x, n / 2);
return temp * temp;
}
}
};

[原题链接](50. Pow(x, n) - 力扣(Leetcode))

0%