【问题标题】:Can someone explain how is result in this function -2 ? Python有人可以解释这个函数 -2 的结果如何吗? Python
【发布时间】:2022-10-07 18:54:12
【问题描述】:

有人可以向我解释一下输出 -2 是怎么回事,为什么?如果可以编写程序它是怎么来的

def f(a):
  if a > 10:
    return f(a-1) - f(a-3)
  else:
    return 1

b = 13
c = f(b)
print(c)
  • 想想 10 的结果,11 的结果,然后 12 使用 11 的结果,最后是 13 的结果。程序基本上以相反的顺序执行此操作。
  • 请展示一些调试工作。如果在return f(a-1) - f(a-3) 之前添加print(a) 会发生什么?

标签: python function


【解决方案1】:

您正在创建一系列递归,最终输出仅为 1-1-1-1 = -2

首先 f(13) = f(12) - 1 = f(11) - 1 - 1 = 1 - 1 - 1 - 1

【讨论】:

    【解决方案2】:

    您必须了解该功能的作用。 它将自己嵌套,直到“a”的值小于 10,然后返回 1。 期望第一个循环总是返回 f(a-1) - f(a-3)。 所以基本上你有 (1-1) - (1-3) = 0 - 2 = -2

    【讨论】:

    • 小于 11(或不大于 10)
    猜你喜欢
    • 2021-01-06
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    相关资源
    最近更新 更多