码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode Implement pow(x, n).

时间:2016-09-20 01:36:29      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

这个题目我也没有思路,同学们可以查看这个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).

标签:

原文地址:http://www.cnblogs.com/csudanli/p/5887204.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!