← All problems

50. Powx N

MediumOpen on LeetCodeProblem statement

Problem Statement

50. Pow(x, n)

Medium


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

 

Constraints:

Java

Source file
class Solution {
    public double myPow(double x, int n) {
        if (x == 1)
            return 1;
        if (n < 0)
            return pow(1d / x, -(long) n);
        return pow(x, n);
    }

    private double pow(double x, long n) {
        if (n == 0)
            return 1;
        if (n == 1)
            return x;
        if (n % 2 == 0)
            return pow(x * x, n / 2);
        return x * pow(x, n - 1);
    }
}