def tri_recursion(k):
if (k > 0):
result = k + tri_recursion(k - 1)
print(result)
else:
result = 0
return result
print("\n\n Recursion Example results ")
tri_recursion(7)
输出将自己添加所有数字,直到其长度=7。但我不知道这个函数是如何工作的。 我的意思是如果k=tri_递归(7)(7-1=6)。 那么为什么输出中的第一个数字是 1,3,6,10,15,21,
我是编程新手,递归函数的概念一点也不清楚。 有人能解释一下这个代码是如何工作的吗
这里发生了什么
您最初调用k=7的函数
函数看到给定值k=7为>;0,因此,如果使用6调用,则计算函数结果的7+。 为了确定后者,它用k=6调用自己
函数看到给定值k=6为>;0,因此,如果使用5调用,则计算函数结果的6+。 为了确定后者,它用k=5调用自己
函数看到给定值k=5为>;0,因此,如果使用4调用,则计算函数结果的5+。 为了确定后者,它用k=4调用自己
函数看到给定值k=4为>;0,因此如果使用3调用,则计算函数结果的4+。 为了确定后者,它用k=3调用自己
函数看到给定值k=3为>;0,因此如果使用2调用,则计算函数结果的3+。 为了确定后者,它用k=2调用自己
函数看到给定值k=2为>;0,因此,如果使用1调用,则计算函数结果的2+。 为了确定后者,它用k=1调用自己
函数看到给定值k=1为>;如果使用0调用,则计算函数结果的1+。 为了确定后者,它用k=0调用自己
函数看到给定值k=0不是>;0,因此返回0
所以
最后,28由“原始函数调用”返回,但被丢弃。您看到它只是因为函数中的
print(result)
与任何其他递归函数调用相比,该原理没有什么不同
相关问题 更多 >
编程相关推荐