Pow(x, n) LeetCode

 Implement pow(x, n), which calculates x raised to the power n (i.e., xn).


 


Example 1:


Input: x = 2.00000, n = 10

Output: 1024.00000

Example 2:


Input: x = 2.10000, n = 3

Output: 9.26100

Example 3:


Input: x = 2.00000, n = -2

Output: 0.25000

Explanation: 2-2 = 1/22 = 1/4 = 0.25


class Solution {
    public double pow(double x, long n) {
        if (n == 0) return 1.0;   //  important base case

        if (x == 0) return 0.0;   //  handle x=0 separately (optional)

        double half = pow(x, n/2);  //2*n/2=n

        if (n % 2 == 0) {
            return half * half;
        } else {
            return x * half * half;
        }
    }

    public double myPow(double x, int n) {
        long N = (long) n;
        if (N < 0) {
            return 1 / pow(x, -N);   // pass positive n inside
        } else {
            return pow(x, N);
        }
    }
}

Comments

Popular posts from this blog

Two Sum II - Input Array Is Sorted

Comparable Vs. Comparator in Java

Increasing Triplet Subsequence