欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

50. Pow(x, n)

程序员文章站 2022-07-15 12:47:39
...

50. Pow(x, n)
方法一:迭代

class Solution {
public:
    double myPow(double x, int n) {
        double res=1.0;
        for(int i=n;i!=0;i/=2){
            if(i%2) //奇数幂
                res*=x;
            x*=x;   
        }
        return n<0?1/res:res;
    }
};

方法二:递归

负数时没有用mypow(x,-n),因为-2147483648转为正数超出int范围。

class Solution {
public:
    double myPow(double x, int n) {
        if(n==0)
            return 1;
        if(n==1)
            return x;
        if(n==-1)
            return 1/x;
        double half=myPow(x,n/2);
        double res=myPow(x,n%2);
        return res*half*half;
    }
};
相关标签: leetcode

上一篇: 50. Pow(x, n)

下一篇: 50. Pow(x, n)