题目链接:Pow(x, n)
- 题目描述:
Implement pow(x, n).
(1)思路:分情况先把结果最简单的一些情况输出,然后使用分治将问题转化为两个 pow(x*x, n / 2)相乘,然后递归调用直到最后刚好乘完或者剩余一项(正或者负)。
(2)代码:
class Solution {
public:
double myPow(double x, int n) {
if (n == 0) return 1;
if (n == 1) return x;
if (n == -1) return 1/x;
if(x == 1) return 1;
return myPow(x*x,n/2)*(n % 2 == 0 ? 1 : n > 0 ? x : 1/x);
}
};