首页 > 其他 > 详细

leetcode 写出pow(x,y);

时间:2015-04-01 23:25:54      阅读:199      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!