问题:求
,为了简化,假设x和n都是大于等于0的整数:
一般来说 如果直接使用遍历的话,需要运行n次,记为:时间复杂度O(n),Python实现如下:
def power(x, n):
if n == 0:
return 1
if n == 1:
return x
if x == 0:
return 0
res = 1
for i in range(n):
res = res * x
return res
print(power(2, 10))
返回结果1024是正确的,为了方便观察遍历运算了几次,我们把函数里添加一个计数的变量,每次遍历让他+1:
def power(x, n):
k = 0 # 计算循环次数
if n == 0:
return 1
if n == 1:
return x
if x == 0:
return 0
res = 1
for i in range(n):
res = res * x
k = k + 1
print(k)
return res
power(2, 10)
power(2, 20)
pow