def fab(n):
if n<1:
print “输入有误! ”
return -1
if n==1 or n==2:
return 1
else:
return fab(n-1)+fab(n-2)
#为什么只能用return fab(n-1)+fab(n-2)而不能够用函数
#fab(n)=fab(n-1)+fab(n-2)
#return fab(n)
#原因在于return 在返回相应的函数的时候还存在一个函数的调用,因此return fab(n-1)+fab(n-2)相当于在计算的过程中在进行函数的调用,而
#简单的return fab(n)则只是调用函数fab(n)因此会造成相应的函数的调用出现问题
result=fab(20)
if result!=-1:
print ‘总共有%s对小兔子诞生!’ % result
斐波那契数列递归实现
1037

被折叠的 条评论
为什么被折叠?



