Pow(x, n) - LeetCode

·

1 min read

Problem Link

C++ Code

class Solution {

    double pow(double x, long long n) {

        if(n==0)
            return 1;

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

    }

public:
    double myPow(double x, int n) {

        if(n>=0)
            return pow(x, n);

        return 1/pow(x, abs(n));

    }
};

TypeScript Code

function pow(x: number, n: number): number {

    if(n==0) return 1;

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

}

function myPow(x: number, n: number): number {

    if(n>=0) {
        return pow(x, n);
    } else {
        return 1/pow(x, Math.abs(n));
    }

};

Go Code

func pow(x float64, n int) float64 {

    if n == 0 {
        return 1;
    }

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

}

func myPow(x float64, n int) float64 {

    if n >= 0 {
        return pow(x, n);
    } else {
        return 1/pow(x, -n);
    }

}