ID | Title | Difficulty | |
---|---|---|---|
Loading... |
50. Pow(x, n)
Medium
LeetCode
Math, Recursion
Problem
Implement pow(x, n), which calculates x raised to the power n (x^n).
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/2^2 = 1/4 = 0.25
Constraints:
- -100.0 < x < 100.0
- $-2^{31} <= n <= 2^{31}-1$
- n is an integer.
- %-10^4 <= x^n <= 10^4%
Code
class Solution {
public double myPow(double x, int n) {
boolean isNegative = false;
if (n < 0) {
x = 1 / x;
isNegative = true;
// 避免溢出,当为MIN_VALUE时,可以防止溢出
n = -(n + 1);
}
double ans = 1;
double tmp = x;
while (n != 0) {
if (n % 2 == 1) {
ans *= tmp;
}
tmp *= tmp;
n /= 2;
}
if (isNegative) {
ans *= x;
}
return ans;
}
}
按 <- 键看上一题!
49. Group Anagrams
按 -> 键看下一题!
51. N-Queens