题目:
实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。
算法:
方法一:递归快速幂
func myPow(x float64, n int) float64 {
if n < 0 {
return float64(1) / quickMul(x, n)
}
return quickMul(x, n)
}
func quickMul(x float64, n int) float64 {
if n == 0 {
return float64(1)
}
y := quickMul(x, n / 2)
if n % 2 == 0 {
return y * y
}
return y * y * x
}
方法二:迭代快速幂
func myPow(x float64, n int) float64 {
if n < 0 {
return float64(1) / quickMul(x, -n)
}
return quickMul(x, n)
}
func quickMul(x float64, n int) float64 {
ans := float64(1)
for n > 0 {
if n % 2 == 1 {
ans = ans * x
}
x = x * x
n = n >> 1
}
return ans
}