LeetCode---(50)Pow(x, n)

来源:互联网 发布:淘宝直播卖的东西质量 编辑:程序博客网 时间:2024/05/21 19:48

Implement pow(xn).

pow(x,n)就是求x的n次方。x的N次方可以看做:x^n = x^(n/2)*x^(n/2)*x^(n%2)。所以利用递归求解,当n==1的时候,x^n=x。

当然n是可以小于0的,2^(-3) = 1/(2^3)。按照上面那个规律就可以解决了。

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


0 0
原创粉丝点击