我正在尝试基于重复平方实现一个简单的fast_exponentiation算法。但是,尽管条件变量n似乎达到了0,但我的while循环并没有终止。以下是我的代码及其生成的输出:
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
您能告诉我我在做什么错吗?