题意理解:
自己实现pow()函数;
题目分析:
二分法:可以粗糙理解为pow(m, n)= pow(m, n/2)*pow(m, n/2)
解题代码:
class Solution {
private:
double funPow(double x, int n) {
if(n==0){
return 1;
}
double half=myPow(x, n/2);
if(n%2==0){
return half*half;
}else if(n%2==1){
return x*half*half;
}
}
public:
double myPow(double x, int n) {
if(n>=0){
return funPow(x, n);
}else{
return 1.0/funPow(x, -1*n);
}
}
};