4/06/2014

Leetcode -- Pow(x, n)

class Solution {  
 public:  
   double pow(double x, int n) {  
     if(x == 1.0) {  
       return x;  
     }  
     if(x == -1.0) {  
       long long tester = n;  
       if(tester < 0) {  
         tester = -tester;  
       }  
       return (tester %2) ? -1.0 : 1.0;  
     }  
     double result = 1.0;  
     double factor = n >= 0 ?x : 1.0/x;  
     n = abs(n);  
     for(int i = 0; i < n; ++i) {  
       result *= factor;  
       if(abs(result) < 0.00000001) {  
         result = 0.0;  
         break;  
       }  
     }  
     return result;  
   }  
 };  

No comments: