25 lines
260 B
Go
25 lines
260 B
Go
package q50
|
|
|
|
func myPow(x float64, n int) float64 {
|
|
neg := n < 0
|
|
if neg {
|
|
n = -n
|
|
}
|
|
|
|
var ret float64 = 1
|
|
for n > 0 {
|
|
v, p := x, 1
|
|
for p*2 < n {
|
|
p *= 2
|
|
v *= v
|
|
}
|
|
n -= p
|
|
ret *= v
|
|
}
|
|
if neg {
|
|
return 1 / ret
|
|
}
|
|
return ret
|
|
}
|
|
|
|
var _ = myPow
|