我正在解决一个python问题。健康)状况:
实现 sum_positive_numbers 函数,作为一个递归函数,它返回接收到的数字 n 和 1 之间的所有正数之和。例如,当 n 为 3 时,它应该返回 1+2+3=6,当 n 为 5 时,它应该返回 1+2+3+4+5=15。
我还获得了此任务的示例代码:
def sum_positive_numbers(n):
return 0
print(sum_positive_numbers(3)) # Should be 6
print(sum_positive_numbers(5)) # Should be 15
我试图这样解决:
def sum_positive_numbers(n):
for i in range(n):
n += i
return n
print(sum_positive_numbers(3)) # Should be 6
print(sum_positive_numbers(5)) # Should be 15
一切都按原样解决了,输出相同..但我收到一个错误:这是您的输出:6、15。不完全是。虽然无需递归即可获得结果,但我们希望在此练习中使用递归。我不明白如何在这里构建递归解决方案。
首先,循环必须从 1 开始并以 n 结束
for i in range(1, n):
,其次,这根本不是递归解决方案例如,您可以像这样:
像这样的东西