Leecode50 Pow(x, n)
通过代码
class Solution {
public:
double myPow(double x, int n) {
if (n==0){
return 1;
}
else if(n>0){
if(n%2==0){
double y=myPow(x,n/2);
return y*y;
}
else{
double y=myPow(x,n/2);
return x*y*y;
}
}
else{
n=n+1;//解决边界值问题
n=-n;
return 1/(x*myPow(x,n));
}
}
};
代码笔记
- 题目解决用到了快速幂+递归的方法
- 注意 “return y*y” 如果换成 “return myPow(x,n/2)*myPow(x,n/2)” 会有超时的问题,因为调用了两次myPow