【发布时间】:2016-06-03 01:03:19
【问题描述】:
基本上我正在尝试创建一个函数 r_sum(n),它将返回前“n”个倒数的总和:例如sum(5) = 1 + 1/2 + 1/3 + 1/4 + 1/5 。我是递归的新手,在实现时遇到了麻烦。这是我到目前为止的代码:
def r_sum(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return 1/n
我想我已经创建了函数的基础,但我不确定我会在哪里调用函数本身。到目前为止,我意识到该函数只会返回 1/n 的值。我怎样才能添加到这个,以便我有函数调用本身来计算这个总和?
【问题讨论】:
-
def sum_to(n): return 0 if n == 0 else 1./n + sum_to(n-1)— »太容易了。也许你没有我想象的那么坚强。« -
stackoverflow.com/questions/36163040/… 这是课程的一部分吗?
-
嗯,应该保留一条注释,指出 在 Python 3 中,即使
n是一个整数,像1/n这样的东西也会创建一个浮点数。由于这对于其他编程语言来说并不常见(即使是 Python 2 也会返回一个 int,对于大多数n来说是 0),因此该注释仍然有意义。 -
你在哪里学习递归?当然它应该有例子来说明一个函数是如何调用自己的。
-
我意识到这是一个简单的解决方法,如果问题是多余的,我们深表歉意。此外,这不是课程的一部分。
标签: python python-3.x recursion