在给出以下代码的情况下,功率(2,5)返回的值是多少?

时间:2016-05-01 11:38:25

标签: python

def power(x,n):
    'computes x to the power of n'

    value = 1
    if n > 0:
        value = power(x, n//2)
        if n%2 == 0:
            value = value*value

        else:
            value = value*value*x

    return value

所以我知道答案是32(正如我的讲师所说),但是当我单步执行代码时,我似乎无法弄清楚如何获得该值。有人可以为我打破这段代码吗?

1 个答案:

答案 0 :(得分:3)

这是 exponentiation by squaring

因此,基本上2 ^ 5与2 * 2 ^(2)* 2 ^(2)相同,2 ^ 2与2 ^ 1 * 2 ^ 1相同。这就是它使用的想法。