26 lines
339 B
Go
26 lines
339 B
Go
// Package q50 implements a solution for https://leetcode.com/problems/powx-n/
|
|
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
|