老师,请问这样写为什么能实现递归呢
来源:5-1 递归函数
慕尼黑1183503
2021-08-12 12:46:49
1回答
好帮手慕念
2021-08-12
同学,你好!
1、func()函数在函数体内部调用自己,这个函数是递归函数
2、代码运算逻辑如下:
(1)当调用func()函数时,即func(x),此时x的值是[1,2,3,4,5],执行的代码:return x[0] + func(x[1:]),即return 1+func(x[1:])
(2)接着调用func()函数,即func(x[1:]),此时x的值是[2,3,4,5],执行的代码:return x[0] + func(x[1:]),即return 2+func(x[1:])
(3)接着调用func()函数,即func(x[1:]),此时x的值是[3,4,5],执行的代码:return x[0] + func(x[1:]),即return 3+func(x[1:])
(4)接着调用func()函数,即func(x[1:]),此时x的值是[4,5],执行的代码:return x[0] + func(x[1:]),即return 4+func(x[1:])
(5)接着调用func()函数,即func(x[1:]),此时x的值是[5],执行的代码:return x[0] + func(x[1:]),即return 5+func(x[1:])
(6)最后一步调用func()函数时,即func(x[1:]),此时x的值是[],执行的就是if中的代码,即return 0,结束调用,相当于执行func(x)时,return后面的值是1+2+3+4+5+0
祝学习愉快!
相似问题