分治算法
func myPow(x float64, n int) float64 {
if n == 0 {
return 1
}
if n < 0 {
return 1/myPow(x,-n)
}
if n %2 != 0 {
return x * myPow(x,n-1)
}
return myPow(x*x,n/2)
}
位运算
func myPow(x float64, n int) float64 {
result := 1.0
if n < 0 {
n = -n
x = 1/x
}
for n > 0 {
if n & 1 == 1 { // 假如n是奇数,那么就使用result * x 如果是偶数就是使用的是 x * x
result *= x
}
x *= x
n >>= 1
}
return result
}