Implement pow(xn).

递归解法

double powercore(double base,int ex){

         if(ex==0)

            return 1;

      

        double res=0;

        res=powercore(base,ex/2);

        res*=res;

        if(ex&1){

            res*=base;

        }

        return res;

    }

    double Power(double base, int exponent) {

        if(exponent==0)

            return 1;

        bool flag=false;

      double e=1e-9;

        if(abs(base)<e)

            return 0;

        if(exponent<0){

            exponent=-exponent;

            flag=true;

        }

        double res=powercore(base,exponent);

        if(flag)

            res=1.0/res;

        return res;

    }



非递归解法

double myPow(double x, int n) {

        int flag=false;

        if(n == 0){  

            return 1;  

        }  

       

      double e=1e-9;

        if(abs(base)<e)

            return 0;

        else if(n < 0){  

            n = 0- n;

            flag=true;

        }  

          

        double result = 1;  

        while(n>0){  

            if(n&1){  

                result *= x;  

            }  

            n>>=1;  

            x *= x;  

        }  

        if(flag)

            return 1/result;

        return result;  

    }