题目
输出斐波那契数列第n个数。
分析
首先我们要知道,斐波那契数列,这个数列从第三位开始等于前两个数的和,要知道数列第n个数(n>2),就要知道其前两相的值,着就需要用到递归了。来看一下吧
Python代码
def fibibacci(n):
if n == 0: # 递归结束条件1
return 0
elif n == 1: # 递归结束条件2
return 1
elif n >= 2:
return fibibacci(n-1) + fibibacci(n-2) # 递归
a = int(input("想知道斐波那契数列第几个数:"))
print(fibibacci(a))
总结
递归是指在函数的定义中使用函数自身的方法。为什么能达到递归效果?这跟我们计算机执行程序有关了,计算机会将我们要执行的程序入栈,将fibibacci(n)入栈,但是遇到递归,他发现要执行fibibacci(n)要知道fibibacci(n-1)和fibibacci(n-2),要执行fibibacci(n-1)和fibibacci(n-2)要知道fibibacci(n-3)fibibacci(n-4),直到fibibacci(n)中n变为0和1时就明确了,fibibacci(0),fibibacci(1)可以直接执行出栈得到结果,让然后又倒回去挨个出栈取结果,最终得到fibibacci(n)。(若解释有错误或误导的地方,请各位大佬批评指正)