首页 > 其他 > 详细

【LeetCode】Pow(x, n)

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

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)

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!