不明白为什么这个while循环没有终止

2024-04-26 14:46:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试实现一个简单的基于重复平方的快速求幂算法。但是无论如何,我的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

你能告诉我我做错了什么吗?你知道吗


Tags: 代码算法returnifheredefresult条件