Implement pow(x, n), which calculates x raised to the power n (xn).
Example 1:
Input: 2.00000, 10
Output: 1024.00000
Example 2:
Input: 2.10000, 3
Output: 9.26100
Example 3:
Input: 2.00000, -2
Output: 0.25000
Explanation: 2-2 = 1/22 = 1/4 = 0.25
Note:
x^n = x^(n/2) * x^(n/2), if n is even
x^n = x^((n-1)/2) * x^((n-1)/2) * x, if n is odd
Corner cases:
Note here we can not use any bitwise operator,
n = -2^31
might overflow.
/**
* @param {number} x
* @param {number} n
* @return {number}
*/
let myPow = function (x, n) {
if (n === 0) {
return 1;
}
if (n === 1) {
return x;
}
if (n === -1) {
return 1 / x;
}
if (n % 2 === 0) {
const res = myPow(x, n / 2);
return res * res;
}
const res = myPow(x, (n - 1) / 2);
return x * res * res;
};
☆: .。. o(≧▽≦)o .。.:☆☆: .。. o(≧▽≦)o .。.:☆☆: .。. o(≧▽≦)o .。.:☆
☆: .。. o(≧▽≦)o .。.:☆☆: .。. o(≧▽≦)o .。.:☆