嗨,我正在下面的代码下运行,下面是输出,我得到了,有人可以帮我为什么k的值在行以下之后增加,因为函数未更改与k相关的任何内容-
@@@@@@@@@@@@@@@@@@
出现混乱的输出行- ” 结果是:0并且k是0 如果循环为1,则输入k # 结果在if循环1中
结果是:1,k是1“
@@@@@@@@@@@代码-@@@@@@@@@@@@@@@@
def tri_recursion(k):
print('##')
print("k is "+ str(k))
lp=0
if(k>0):
print('If loop is' +str(lp))
lp=lp+1
result = k+tri_recursion(k-1)
print('k in if loop is ' + str(k) )
print('#')
print("result is in if loop " + str(result))
else:
print('""')
result = 0
print('****')
print("result is: " +str(result) + " and k is " +str(k))
return result
print("\n\nRecursion Example Results")
abc=tri_recursion(6)
#print('K is :' + k)
print('abc is ' +str(abc))
@@@@@@输出@@@@@@@@@@@
递归示例结果
k是6 如果循环为0
k是5 如果循环为0
k是4 如果循环为0
k是3 如果循环为0
k是2 如果循环为0
k是1 如果循环为0
k为0 “”
结果是:0并且k是0 如果循环为1,则输入k # 结果在if循环1中
结果是:1并且k是1 如果循环为2,则k # 结果在if循环3中
结果是:3并且k是2 如果循环为3,则输入k # 结果在if循环6中
结果是:6并且k是3 如果循环为4,则输入k # 结果在if循环10中
结果是:10并且k是4 如果循环为5,则输入k # 结果在if循环15中
结果是:15并且k是5 如果循环为6,则输入k # 结果在if循环21中
结果是:21并且k是6 abc是21
答案 0 :(得分:0)
在递归步骤中将k
作为tri_recursion(k)
传递到tri_recursion(k-1)
时,您正在进行更改。
tri_recusion(k)
与k-0 + k-1 + k-2 + ....k-k
基本相同。因此6
将返回6+5+4+3+2+1 = 21
,每一步都为0 , 0+1, 0+1+2, ...., 0+1+2+3+4+5+6 == 0,1,3,6,10,15,21