[leetcode]Pow(x, n)

2014-11-23 21:42:19 · 作者: · 浏览: 7
class Solution {
public:
    double powPositive(double x, int n){
        if(n == 0) return 1;
        if(n == 1) return x;
        
        double tmp;
        if(n%2 == 0){
            tmp = powPositive(x, n/2);
            return tmp*tmp;
        }
        
        tmp = powPositive(x, n/2);
        
        return tmp*tmp*x;
    }
    
    double pow(double x, int n) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        if(n >
= 0) return powPositive(x,n); return 1/powPositive(x,-n); } };