package main
import (
"fmt"
)
func myPow(base float64, exponent int) float64 {
result := 1.0
for exponent > 0 {
if exponent&1 == 1 {
result *= base
}
exponent >>= 1
base *= base
}
return result
}
func main() {
fmt.Println(myPow(2, 3)) // 8
fmt.Println(myPow(3, 3)) // 27
fmt.Println(myPow(3, 2)) // 9
fmt.Println(myPow(2, 2)) // 4
fmt.Println(myPow(5.0, 2)) // 25
fmt.Println(myPow(-2, 4)) // 16
}
/*
run:
8
27
9
4
25
16
*/