首页 > 解决方案 > 递归函数不能按预期工作

问题描述

有人可以解释代码吗?我只是不明白为什么这段代码会给出这样的输出:

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)

标签: python-3.x

解决方案


在上述情况下,您的代码正在计算直到nn 所在位置的数字总和。6print语句打印中间结果。因此输出1 3 6 10 15 21

1 - 从 0 到 1 的数字之和

3 - 从 0 到 2 的数字之和

6 - 0 到 3 的数字之和

10 - 0 到 4 的数字之和

15 - 0 到 5 的数字之和

21 - 0 到 6 的数字之和


推荐阅读