下面是一个示例的解决方法,可以编写一个“下降幂方法”:
def power(base, exponent):
result = 1
while exponent > 0:
if exponent % 2 == 1:
result *= base
base *= base
exponent //= 2
return result
# 测试
print(power(2, 3)) # 输出:8
print(power(5, 0)) # 输出:1
print(power(3, 4)) # 输出:81
在这个示例中,我们定义了一个power
函数,接受两个参数base
和exponent
,分别表示底数和指数。函数的目标是计算base
的exponent
次幂。
在函数内部,我们使用了一个while
循环,循环条件是exponent > 0
。每次循环中,我们首先判断exponent
的最低位是否为1,如果是,则将base
乘以result
;然后,将base
自乘,将exponent
右移一位,即除以2。
最后,返回result
作为计算结果。
这个方法的时间复杂度是O(logn),其中n是指数的大小。因为在每次循环中,指数都会减少一半,所以循环的次数最多是logn。
上一篇:编写一个“实时编码者”。