【问题标题】:What is the value returned by power(2,5) given the following code? [closed]给定以下代码,power(2,5) 返回的值是多少? [关闭]
【发布时间】:2016-05-01 11:38:25
【问题描述】:
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(正如我的讲师所说),但是当我逐步执行代码时,我似乎无法弄清楚如何获得该值。谁能帮我破解这段代码?

【问题讨论】:

  • 放一些prints 并通过它们
  • 您可能投了反对票,因为 SO 是为了帮助您修复 您的 代码,而不是解释其他人的代码。但是请查看 here 以获取将 print 调用添加到递归代码以帮助您跟踪其作用的示例。
  • 推荐的解释代码的网站?
  • 没关系,找到了。 (Y)
  • SO 不能代替你做作业。现在你的问题没有显示任何研究工作。正如there 所述,“请求家庭作业帮助的问题必须包括您迄今为止为解决问题所做的工作的总结,以及您在解决问题时遇到的困难的描述。”

标签: python


【解决方案1】:

这是 exponentiation by squaring

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    相关资源
    最近更新 更多