lc50-Pow(x, n) 發表於 2016-12-13 | 0 comments | 注意负号的corner case,以及INT_MIN 123456789101112class Solution {public: double myPow(double x, int n) { // if (n<0) return 1/x*myPow(1/x, -(n+1)); if (n==1) return x; if (!n) return 1; double m = myPow(x, n/2); double t = (n<0)?1/x:x; if (n%2) return m*m*t; else return m*m; }}; 1234567891011class Solution {public: double myPow(double x, int n) { if (n<0) return 1/x*myPow(1/x, -(n+1)); if (n==1) return x; if (!n) return 1; double m = myPow(x, n/2); if (n%2) return m*m*x; else return m*m; }};