- Question:
Implement pow( x, n).
- Analysis:
首先考虑n与0的关系,如果n=0则应返回1;如果n<0,则应返回1.0/power(x,-n);如果n>0,则应返回power(x,n)。另外利用二分法,可以先计算pow(x,n/2),然后在进行一次乘法。
- Code:
class Solution { public: double myPow(double x, int n) { if (n < 0) return 1.0/power(x,-n); else return power(x,n); } private: double power(double x,int n) { if (n == 0) return 1.0; double v = power(x,n/2); if (n%2 != 0) return v*v*x; else return v*v; } };