leetcode 写出pow(x,y);

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;
    }
原文地址:https://www.cnblogs.com/gongdi/p/4385564.html