我试图实现一个简单的快速指数算法基于重复平方。但是不知怎么的,我的while循环没有终止,即使条件变量n似乎达到了0。下面是我的代码及其生成的输出:
def fast_exponentiation(a, n):
result = 1
b = a
while n > 0:
print(n)
if n%2 == 1:
result = result*b
n = n-1
b = pow(b,b)
n = int(n/2)
print("Here")
return result
print(fast_exponentiation(2,12))
输出为:
12
6
3
1
你能告诉我我在这里做错了什么吗?