首页 > 代码库 > LeetCode Implement pow(x, n).

LeetCode Implement pow(x, n).

这个题目我也没有思路,同学们可以查看这个http://www.cnblogs.com/NickyYe/p/4442867.html

 

下面是我改进后的代码

第一种方法:

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

第二种方法:

if (0 == n)return 1;        double result = 1.0;        bool tag = false;        double num=1.0;        if(n==-2147483648)        {            n=1+n;            num=x;        }        if (n<0)        {            n = -n;            tag = true;        }        while (n)        {            if (n & 1)            {                result *= x;            }            x = x*x;            n = n >> 1;        }        if (tag)        {           if(0.999999<num&&num<1.000001)            return 1 / result;            else return 1/result*num;        }        if(0.999999<num&&num<1.000001)        return result;        else return result*num;    }};

 

LeetCode Implement pow(x, n).