package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param base double浮点型
* @param exponent int整型
* @return double浮点型
*/
func Power(base float64, exponent int) float64 {
// write code here
if exponent < 0 {
base = 1 / base
exponent = -exponent
}
// 偶数 x ** n = x ** (n / 2) * x ** (n / 2)
// 奇数 x ** n = x ** (n - 1) * x
// n = 0 x ** n = 1
ret := 1.0
for exponent != 0 {
if exponent&1 != 0 {
ret *= base
}
base *= base
exponent >>= 1
}
return ret
}

京公网安备 11010502036488号