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

【LeetCode】Pow(x, n)

时间:2014-08-04 21:32:48      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:leetcode

Implement pow(x, n).

思路:快速幂运算,需要考虑指数为负数,同时底数为0的情况,这种属于异常数据,代码里没有体现。

class Solution {
public:

    double pow_abs(double x, unsigned int n)
    {
           if (n == 0)
	        {
	        	return 1;
	        }
	        if (n == 1)
	        {
	        	return x;
	        }
	    double res = pow(x, n>>1);
        res *= res;
	    if (n & 0x1 == 1)
	    {
		    res *= x;
	    }
	    return res;
    
    }
    double pow(double x, int n) {
        unsigned int abse = (unsigned int)(n);
        if(n < 0)
            abse = (unsigned int)(-n);
        double res = pow_abs(x, abse);
        if(n < 0)
            res = 1.0 / res;
        return res;
    }
};


【LeetCode】Pow(x, n),布布扣,bubuko.com

【LeetCode】Pow(x, n)

标签:leetcode

原文地址:http://blog.csdn.net/xiaozhuaixifu/article/details/38374751

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