[Leetcode 50, Medium] Pow(x, n)

来源:互联网 发布:上海行知教育 编辑:程序博客网 时间:2024/06/05 15:56

Problem:

Implement pow(xn).

Analysis:


Solutions:

C++:

    double MyPowAux(double x, int n) {        if(n == 0)            return 1;        if(n == 1)            return x;        int rem = n % 2;        n /= 2;                double v = MyPowAux(x, n);        if(rem == 0)            v = v * v;        else            v = v * v * x;        return v;    }        double myPow(double x, int n) {        if(n == 0)            return 1;                    bool is_neg_base = (x >= 0 ? false : true);        x = (is_neg_base ? -1 : 1) * x;        bool is_neg_index = (n >= 0 ? false : true);        n = (is_neg_index ? -1 : 1) * n;        if(is_neg_base && n % 2 == 0)            is_neg_base = false;                    double rv = MyPowAux(x, n);        rv = (is_neg_index ? 1.00 / rv : rv);        return (is_neg_base ? -1 : 1) * rv;    }
Java:


Python:

0 0
原创粉丝点击