50. Pow(x, n)
Implement pow(x, n), which calculates x raised to the power n (i.e., xn).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| 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:
- -100.0 < x < 100.0
- -231 <= n <= 231-1
- -104 <= xn <= 104
Solution#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| class Solution {
public double myPow(double x, int n) {
long N = n;
if (n < 0) {
x = 1.0 / x;
N = -N;
}
long i = N;
double res = 1.0;
double current = x;
while (i > 0) {
if (i % 2 == 1) {
res = res * current;
}
current = current * current;
i = i / 2;
}
return res;
}
}
|
Solution 2021-11-19#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| class Solution {
public double myPow(double x, int n) {
long N = n;
if (n < 0) {
x = 1 / x;
N = -N;
}
double ans = 1.0;
for (long i = N; i > 0; i = i / 2) {
if (i % 2 == 1) {
ans = ans * x;
}
x = x * x;
}
return ans;
}
}
|
Solution 2021-01-30#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| class Solution {
public double myPow(double x, int n) {
long m = n;
if (m == 0) return 1;
if (m < 0) {
m = -m;
x = 1 / x;
}
double base = x;
long degree = 1L;
while (degree < m) {
x = x * x;
degree *= 2;
}
while (degree-- != m) {
x /= base;
}
return x;
}
}
|