为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕运维8079593 2022-10-06 15:43:28
我目前正在学习函数,并且在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 resultprint("\n\nexample result")tri_recursion(6)
查看完整描述

1 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

您需要创建一个存储编号列表:


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 result

print("\n\nexample result")

tri_recursion(6)

print(tri_list)

然后你有:


k = 6

6 + 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

发生这种情况是因为您在每次递归的每次返回中打印先前数字的总和


查看完整回答
反对 回复 2022-10-06
  • 1 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信