python-3.x - 递归函数不能按预期工作
问题描述
有人可以解释代码吗?我只是不明白为什么这段代码会给出这样的输出:
1
3
6
10
15
21
我希望代码给出如下内容:
1
3
5
7
9
11
我在这里想念什么?
def tri_recursion(k):
if(k > 0):
result = k + tri_recursion(k-1)
print(result)
else:
result = 0
return result
tri_recursion(6)
解决方案
在上述情况下,您的代码正在计算直到n
n 所在位置的数字总和。6
该print
语句打印中间结果。因此输出1 3 6 10 15 21
。
1 - 从 0 到 1 的数字之和
3 - 从 0 到 2 的数字之和
6 - 0 到 3 的数字之和
10 - 0 到 4 的数字之和
15 - 0 到 5 的数字之和
21 - 0 到 6 的数字之和
推荐阅读
- numpy - 如何对分解的张量运算执行 einsum?
- flutter - 如何在 Flutter 的 Stream.periodic 事件中使用动态间隔时间
- c++ - 根据c ++中的特定行对矩阵的列进行排序
- sql - 需要使用自定义模式在另一个表中插入数据
- ios - Objective C 中的串行 API 调用
- python - Python Selenium 访问 Barchart 显示全部页面
- python - 试图为 y 轴数据选择多个列表项;获取 TypeError “列表索引必须是整数或切片,而不是元组”
- reactjs - 在 TypeScript 中,“我可以在没有道具的情况下调用的组件”怎么说?
- prolog - Prolog“切换”语句
- c# - 捕捉全局 MouseClick 然后重复它