你可以使用以下方法来实现 pow(x, n) 函数:
暴力枚举,即将 x 乘 n 次,时间复杂度为 O(n),这是一种很 naive 的方法。
快速幂,利用二分的思想,每次将幂次 n 缩小一半,时间复杂度为 O(logn),这是一种常用的方法。
例如,当 n 为奇数时,我们可以先计算出 pow(x, n // 2) 的值,然后再乘上一个 x,这样就能计算出 pow(x, n) 的值。如果 n 为偶数,则直接计算 pow(x, n // 2) 的平方即可。
具体代码实现如下:
defpow(x, n):
if n == 0:
return 1
if n < 0:
x = 1 / x
n = -n
half = pow(x, n // 2)
if n % 2 == 0:
return half * half
else:
return half * half * x
注意特判 n 为负数的情况。