LeetC0de22. Pow(x, n)

image-20230410222957180

利用二分法处理 负数特殊处理

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
class Solution {


public double myPow(double x, int n) {
long n1 =n;
double res = 1;

//对负数进行处理
if(n1 < 0){
x= 1/x;
n1= -n1;
}

// 二分处理
double temp =x;
while(n1 > 0){
// 判断奇偶数
if( (n1 & 1)==1){
res *= temp;
}
// 得出 Math.pow(x,n)
// 负数特殊处理
temp *= temp;
// 除2
n1 >>= 1;

}
return res;
}
}

__END__