老师,请问这样写为什么能实现递归呢

来源:5-1 递归函数

慕尼黑1183503

2021-08-12 12:46:49

http://img.mukewang.com/climg/6114a77709c8af9212750650.jpg

写回答

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

​祝学习愉快!


0

0 学习 · 4470 问题

查看课程