Day31:使用递归快速幂算法计算 Pow(x,n)

求 x 的 n 次幂,一般解法时间复杂度为:O(n),你能使用递归写出 O(logn) 的解法吗?

补全如下代码,返回 x 的 n 次幂:

def mypow(x, n):
if n == 0:return 1
if n == 1: return x
if n < 0:
x = 1/x
n = -n
half = n // 2
if n % 2 == 0:
return mypow(x * x, half)
else:
return mypow(x*x, half) * x

print(mypow(2,-4))

你可能感兴趣的:(Day31:使用递归快速幂算法计算 Pow(x,n))