Implement pow(x, n).

public class Solution {
    public double myPow(double x, int n) {
        int m = Math.abs(n);
        double result = 1;
        while (m > 0) {
            if ((m & 1) == 1) {
                result *= x;
            }
            x *= x;
            m >>= 1;
        }
        return n > 0 ? result : 1.0 / result;
    }
}
public class Solution {
    public double myPow(double x, int n) {
        if (n == 0) return 1;
        if (n == 1) return x;
        double temp = myPow(x, n / 2);
        temp = temp * temp;
        if (n % 2 != 0) {
            if (n > 0) {
                temp = temp * x;
            } else {
                temp = temp * (1.0 / x);
            }
        }
        return temp;
    }

    public double myPow(double x, int n) {
        if (n == 0) return 1.0;
        if (n == 1) return x;
        int m = Math.abs(n);
        double result = myPow(x, m / 2);
        result *= result;
        if (m % 2 != 0) {
            result *= x;
        }
        return n > 0 ? result : 1.0 / result;
    }
}

class Solution(object):
    def myPow(self, x, n):
        """
        :type x: float
        :type n: int
        :rtype: float
        """

        m = abs(n)
        ret = 1
        while m > 0:
            if m & 1 == 1:
                ret *= x
            x *= x
            m /= 2
        return ret if n > 0 else 1.0 / ret