Pow(x, n)

Implement pow(xn).

思路:这道题看似简单,其实杀机无穷啊,所以啊在面试的时候,面试官考你一道很简单的问题,要想清楚。这道题我一直RE,就是对n<0这一块处理的不好。主要是计算x^n=x^(n/2)*x^(n/2)*x^(n%2);

class Solution {
public:
    double pow_position(double x,int n)
    {
        double half=pow(x,n/2);
        if(n%2==0)
            return half*half;
        else
            return half*half*x;
    }
    double pow(double x, int n) {
        if(n==0)
            return 1.0;
        else if(n>0)
            return pow_position(x,n);
        else
            return 1/pow_position(x,-n);
    }
};

 

 

posted @ 2014-04-26 16:39  Awy  阅读(141)  评论(0编辑  收藏  举报