|

楼主 |
发表于 2017-4-14 12:36:23
|
显示全部楼层
把执行过程打印出来了,再看上面两位说的,我基本懂了递归的执行过程了,谢谢了!
def fab(n):
print('n','=',n)
if n<1:
print('输入有误!')
return -1
if n == 1 or n == 2:
print('-------------------------')
print('n1','=',n)
return 1
else:
print('+++++++++++++++++++++++++++++++')
print('n-1','=',n-1)
print('n-2','=',n-2)
print('fab(n-1)','=',fab(n-1))
print('fab(n-2)','=',fab(n-2))
return fab(n-1) + fab(n-2)
result = fab(4)
if result != -1:
print ('总共哟%d对兔子诞生!'%result)
执行过程打印:
n = 4
+++++++++++++++++++++++++++++++
n-1 = 3
n-2 = 2
n = 3
+++++++++++++++++++++++++++++++
n-1 = 2
n-2 = 1
n = 2
-------------------------
n1 = 2
fab(n-1) = 1
n = 1
-------------------------
n1 = 1
fab(n-2) = 1
n = 2
-------------------------
n1 = 2
n = 1
-------------------------
n1 = 1
fab(n-1) = 2
n = 2
-------------------------
n1 = 2
fab(n-2) = 1
n = 3
+++++++++++++++++++++++++++++++
n-1 = 2
n-2 = 1
n = 2
-------------------------
n1 = 2
fab(n-1) = 1
n = 1
-------------------------
n1 = 1
fab(n-2) = 1
n = 2
-------------------------
n1 = 2
n = 1
-------------------------
n1 = 1
n = 2
-------------------------
n1 = 2
总共哟3对兔子诞生!
>>> |
|