【发布时间】:2020-06-16 10:52:04
【问题描述】:
def c_b(n, k):
memo = {}
if n == 0:
return 0
if k == 0:
return 1
try:
return memo[n,k]
except KeyError:
memo[n, k] = c_b(n-1, k) + c_b(n-1, k-1)
return memo[n, k]
我想知道为什么这段代码不能正常工作我没有得到任何异常/错误只是一些错误的数字结果,例如 4 而不是 10
【问题讨论】:
-
欢迎来到 Stack Overflow!请正确格式化您的代码,click here to learn how。
-
您能否详细说明您的代码“不起作用”的原因?你期待什么,实际发生了什么?如果您遇到异常/错误,请发布它发生的行以及可以使用minimal reproducible example 完成的异常/错误详细信息。请edit您的问题将这些详细信息添加到其中,否则我们可能无法提供帮助。
-
@БогданОпир 我没有得到任何异常/错误,只是一些错误的数字结果,例如 4 而不是 10。
-
memo = {}每次调用此函数时都会将memo重置为空字典。 -
您应该了解什么是局部变量,并学习 OOP 基础知识。您可以使用
global和nonlocal关键字作为快捷方式。
标签: python-3.x