-
Notifications
You must be signed in to change notification settings - Fork 75
Expand file tree
/
Copy pathleetcode_0050_Pow_x_n.cpp
More file actions
40 lines (39 loc) · 903 Bytes
/
leetcode_0050_Pow_x_n.cpp
File metadata and controls
40 lines (39 loc) · 903 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class Solution {
public:
/**
* AC:
* Runtime: 0 ms, faster than 100.00% of C++ online submissions for Pow(x, n).
* Memory Usage: 8.4 MB, less than 59.64% of C++ online submissions for Pow(x, n).
*
*/
double pow(double x, long long n) {
if (n == 0)
return 1;
if (n == 1)
return x;
double value = pow(x, n / 2);
value = value * value;
if (n % 2) {
value = value * x;
}
return value;
}
double myPow(double x, int n) {
if (n == 0)
return 1;
if (n == 1)
return x;
double ans;
if(n == INT_MIN) {
x = 1 / x;
ans = pow(x, - n - 1) * x;
return ans;
}
if (n < 0) {
n = -n;
x = 1 / x;
}
ans = pow(x, n);
return ans;
}
};