代码之家  ›  专栏  ›  技术社区  ›  3nondatur

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

  •  1
  • 3nondatur  · 技术社区  · 6 年前

    我试图实现一个简单的快速指数算法基于重复平方。但是不知怎么的,我的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
    

    你能告诉我我在这里做错了什么吗?

    0 回复  |  直到 6 年前
    推荐文章