|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
小甲鱼老师在讲解递归函数教学视频中有以下的代码:
>>> def fibRecur(n):
... if n == 1 or n == 2:
... return 1
... else:
... return fibRecur(n-1) + fibRecur(n-2)
...
>>> fibRecur(12)
144
当输入n为12时,n不满足if n==1 or n== 2的条件,进入到else语句部分,即fibRecur(n-1) + fibRecur(n-2), 此时变为fibRecur(12-1) + fibRecur(12-2),即fibRecur(11) + fibRecur(10),这时候应该重新调用fibRecur函数自身,因为此时n已分别变为11和10了, n仍不满足if n==1 or n== 2的条件,还是进入到else语句部分,这里是不是应该变为fibRecur(11-1) + fibRecur(11-2)+ fibRecur(10-1) + fibRecur(10-2)啊?即fibRecur(10) + fibRecur(9)+ fibRecur(9) + fibRecur(8).
如果我的理解没有错的话,那这里的fibRecur(9)会重复出现并计算,不知道我的理解对不对或哪里出错,麻烦大神指点一下,谢谢!
|
|