kia*_*asy 5 python recursion sum python-3.x
这就是我所拥有的,但我不确定为什么它不起作用
def sum(n):
if (n>0):
print (n)
return sum(n)+sum(n-1)
else:
print("done doodly")
number = int(input(": "))
sum(number)
Run Code Online (Sandbox Code Playgroud)
例如如果使用输入5,我想编程来计算5+4+3+2+1的总和。我究竟做错了什么 ?
两件事情:
sum(n)在计算时调用sumforn不会对你有多大好处,因为你会无限期地递归。所以这条线return sum(n)+sum(n-1)是不正确的;它需要n加上n - 1其他值的总和。这也是有道理的,因为这就是您想要计算的。因此,您可以将代码简化为:
def sum(n):
if n == 0:
return 0
return n + sum(n - 1)
Run Code Online (Sandbox Code Playgroud)
你忘了return什么时候n==0(在你的else)
>>> def Sum(n):
... if not n:
... return 0
... else:
... return n + Sum(n-1)
...
>>> Sum(5)
15
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40159 次 |
| 最近记录: |