Pow(x, n)
Implement pow(x, n).
思路:
思路就是递归,用简单递归的方法是O(n)的复杂度,但是如果二分之后再递归,复杂度为O(lg(n))。但是一定注意leetcode有个极限值-2147483648,如果要直接计算的话,就直接会出现无解的case,因此,需要把子函数的传递函数建立为long long形式。
class Solution {
public:
double power(double x, long long n)
{
if(n==0) return 1;
double half=power(x,n>>1);
if(n%2==0)
return half*half;
else
return half*half*x;
}
double myPow(double x, int n) {
long long index=n;
if(n<0) return 1.0/power(x,-index);
else return power(x,index);
}
};