50 - Pow(x, n)
Written on November 8, 2015
Tweet
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