在学习到定义的函数可以调用自身的时候,出现了一些小疑惑。
学习的代码是:
def recursion(k): if(k>0): result = k+recursion(k-1) print(result) else: result = 0 return result recursion(5)
最后一行是给recursion()函数里k参数的,所以result的公式就能计算出结果了。
但是不明白怎么完成递归的计算。
后来想明白了,详解是:
在k=5时,recursion()函数=recursion(5)。此时5代表的既是值也是次数。
而同时recursion(k-1)里的k值也会跟着次数而递增。
k=1时result=k+recursion(k-1)的recursion()函数=recursion(1-1),result=1+(1-1)。
需要注意的是,k=2时result=k+recursion(k-1)的recursion()函数=recursion(2-1)这里recursion(2-1)里的2既是值也是次数。也就是result=2+((1-1)+(2-1))。
.
.
.
k=5时result=k+recursion(k-1)的recursion()函数=recursion(5-1)也是需要跑5次的。也就是(1-1=0,2-1=1,3-1=2,4-1=3,5-1=4。)1+2+3+4=10,所以result=5+10。
这就是递归函数的剖析。
小白见解,如有错误敬请更正!