result = k + tri_recursion(k-1) 如何给我一个三角数的输出?

我目前正在学习函数,并且在w3schools.com上遇到了一个递归示例。这段代码给了我一个参数 k > 0 的三角数列表。我的问题是它究竟是如何打印出一个三角数列表,其中“结果”定义为 result = k + tri_recursion(k-1) 在正文中的代码。例如,输入 k = 6 的输出为我提供了 1、3、6、10、15、21,但我只是不明白我是如何从如此简单的设置中获取三角数列表的返回变量。帮助将不胜感激:)


def tri_recursion(k):

    if k > 0:

        result = k + tri_recursion(k-1)

        print(result)

    else:

        result = 0 

    return result

print("\n\nexample result")

tri_recursion(6)


慕运维8079593
浏览 92回答 1
1回答

UYOU

您需要创建一个存储编号列表:tri_list = []def tri_recursion(k):    if k > 0:        result = k + tri_recursion(k-1)        tri_list.append(result)        print(result)    else:        result = 0     return resultprint("\n\nexample result")tri_recursion(6)print(tri_list)然后你有:k = 66 + tri_recursion(5)      5 + tri_recursion(4)             4 + tri_recursion(3)                  3 + tri_recursion(2)                       2 + tri_recursion(1)                             1 + tri_recursion(0)                             1 + 0 = 1                        2 + 1 = 3                  3 + 3 = 6             4 + 6 = 10        5 + 10 = 15 6 + 15 = 21发生这种情况是因为您在每次递归的每次返回中打印先前数字的总和
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python