1 public class Solution {
2 public double pow(
double x,
int n) {
3 // Start typing your Java solution below
4 // DO NOT write main() function
5 double result = 1.0
;
6 if (n >= 0
)
7 return cal(x, n);
8 else
9 {
10 n = -1 *
n;
11 x = 1 /
x;
12 return cal(x, n);
13 }
14 }
15 public double cal(
double x,
int n)
16 {
17 if (n == 0
)
18 return 1.0
;
19 else if (n == 1
)
20 return x;
21 else if (x == 1.0
)
22 return 1.0
;
23 else if (x == -1.0
)
24 {
25 if (n % 2 == 0
)
26 return 1.0
;
27 else
28 return -1.0
;
29 }
30 if (n % 2 == 0
)
31 {
32 double tmp = cal(x, n / 2
);
33 return tmp *
tmp;
34 }
35 else
36 {
37 double tmp = cal(x, (n - 1) / 2
);
38 return tmp * tmp *
x;
39 }
40
41 }
42 }
转载于:https://www.cnblogs.com/leiatpku/p/3164483.html
相关资源:JAVA上百实例源码以及开源项目
转载请注明原文地址: https://mac.8miu.com/read-13749.html