繁体   English   中英

python中的递归需要帮助理解

[英]Recursion in python need help understanding

我需要帮助理解这个递归的东西我是编码新手并尝试学习 python

def tri_recursion(k):
    if(k > 0):
        result = k + tri_recursion(k - 1)
        print(result)
    else:
        result = 0
    return result

print("\n\nRecursion Example Results")
tri_recursion(6)
 
Recursion Example Results
1
3
6
10
15
21

我理解 1 和 3 我永远不明白为什么第三行的答案是 6,因为 result = 3 + tri_recursion(3-1) print(result) 是 5 对吗?

用你的result打印出k可能会有所帮助

def tri_recursion(k):
    if(k > 0):
        result = k + tri_recursion(k - 1)
        print(f"k: {k} = {result}")
    else:
        result = 0
    return result

print("\n\nRecursion Example Results")
tri_recursion(6)

生产

Recursion Example Results
k: 1 = 1
k: 2 = 3
k: 3 = 6
k: 4 = 10
k: 5 = 15
k: 6 = 21

因此,您可以看到每个k本身就是上一行的结果

以下是它的工作原理:

tri_recursion(1): 结果 = k = 1

tri_recursion(2):结果 = k + tri_recursion(2-1) = k + tri_recursion(1) = 2 + 1 = 3

tri_recursion(3):结果 = k + tri_recursion(3-1) = k + tri_recursion(2) = 3 + 3 = 6

... 等等

希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM