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
}