【发布时间】:2018-03-15 03:44:23
【问题描述】:
我有这些功能:
h(0) = 0
h(1) = 3
h(n) = h(n-1) + 2 * h(n-2), for n>= 2
我需要将其转换为 for 循环、while 循环和递归函数。我已经弄清楚了递归函数,但我似乎无法输出正确的答案。我在 for 循环中的尝试是这样的:
def hForLoop(n):
sum = 3
for i in range(2, n):
sum = sum + ((i - 1) + 2 * (i - 2))
return sum
我似乎无法弄清楚为什么我输出了错误的答案。一些见解将非常有用,我将非常感激。
【问题讨论】:
-
我不同意一个是java,OP是用python编写的
-
如果您准确地解释正在发生的事情,而不是含糊地说存在“问题”,这可能会有所帮助。代码根本不运行吗?它会抛出异常吗?它是否会产生不正确的结果,如果是,结果与您的预期有何不同?
-
@cowbert 第一个不是java,它是一个函数系统。我的任务是用 Python 编写这些函数系统。
-
我的印象是语言不是问题,但是将递归函数转换为迭代代码的技术是 OP 正在寻找的。span>
标签: python python-3.x for-loop recursion while-loop