【发布时间】:2021-03-23 04:00:07
【问题描述】:
我正在做一个关于递归的练习题。
实现 sum_integers(n) 计算从 1 到 ???? 的所有整数之和使用递归。例如, sum_integers(3) 应该返回 6 ( 1+2+3 )。
我在没有真正理解我实际做了什么的情况下解决了这个问题......
def sum_integers(n):
if n == 0:
return 0
else:
return n + sum_integers(n-1)
pass
基本情况,我了解。
假设我们打电话给sum_integers(3)
sum_integers(3)
sum_integers(2)
sum_integers(1)
sum_integers(0)
return 0
我不明白一旦我return 0 什么/如何备份堆栈。
在我的脑海里这就是正在发生的事情
- 0 + sum_integers(1) = 0 + 1
- 0 + 1 + sum_integers(2) = 0 + 1 + 2
- 0 + 1 + 2 + sum_integers(3) = 0 + 1 + 2 + 3
虽然我不确定。我只是想更好地理解它。
【问题讨论】:
-
你最后的想法是对的,那你还有什么不明白的?
-
@azro 我想我想确保我的思维过程是正确的。还是有点模糊
-
要了解递归,首先要了解递归。
标签: python recursion data-structures stack