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

leetcode 写出pow(x,y);

时间:2015-04-01 23:29:06      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

pow函数即为x*X...*x,其中有y个x相乘(x为double类型,y为int类型)

考虑情况:

  1.由于在java中当y=0&x=0是结果为任为1,此处做相应处理;

  2.当y为负数时结果应为1/result;

  3考虑结果很大的情况;

 public double pow(double x, int n)
    {
        if (x == 0.0 && n == 0)
        {
            return 1;
        }
        double res = 1.0;
        int k = n;
        if (n < 0)
        {
            k = -n;
        }
        while (k != 0)
        {
            if ((k & 1) == 1)
            {
                res *= x;
            }
            k >>= 1;
            x *= x;
        }
        if (n < 0)
        {
            res = 1 / res;
        }
        return res;
    }

 

leetcode 写出pow(x,y);

标签:

原文地址:http://www.cnblogs.com/gongdi/p/4385564.html

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