Pow(x, n) (Medium)

Description

Implement pow(x, n).

Analysis

二分思想。投了个巧,因为-INT_MIN = INT_MIN
因此之前我先加了一个1.。

My Solution

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
//C++
class Solution {
public:
double pow(double x, int n) {
if(n==0) return 1.0;
int flag = 1;
double ans = x;
if(n<0){
n++;
n = -n;
flag = 0;
}
else{
n--;
}
while(n){
if(n&1)
ans *= x;
x*=x;
n>>=1;
}
if(flag==0)
ans = 1.0/ans;
return ans;
}
};