迭代法
def quick_power(x, n):
res = 1
while n > 0:
# 如果幂为奇数, 把x记录下来,储存在res中
if n % 2 == 1:
res *= x
# 如果幂为偶数 则不记录,只是处理x, n
x *= x
n >>= 1
return res
递归法:
def quick_power(x, n):
# 特殊情况
if n == 0:
return 1
# 递归过程的最后一层
if n == 1:
return x
# 如果幂的值为偶数, 则 不 进行记录,传给下一层
if n % 2 == 0:
n >>= 1
return quick_power(x**2, n)
# 如果幂为奇数, 把x记录下来,与下面所有层的返回值 相乘 传给上一层
else:
n >>= 1
return x * quick_power(x**2, n)
本文深入解析了快速幂运算的两种核心方法:迭代法与递归法。通过具体代码实例,详细阐述了每种方法的实现步骤及逻辑,帮助读者理解快速幂算法在计算机科学中的应用。
649

被折叠的 条评论
为什么被折叠?



