简介
斐波那契数列代码用递归函数实现,复杂程度简单,是面试时经常遇到的笔试题,考察点递归函数在实际项目中也普遍用到,需要我们熟练掌握。
思路梳理
- 明确斐波那契数列含义
数列:1,1,2,3,5,8,13,21,34,…
被递推方法定义:
F(0)=1,F(1)=1,F(n)=F(n-1)+F(n-2)(n=>2) - 主要考察内容
递归函数和列表及其特性,以及for循环和rang() - 实现思路
1、 整体需要用到递归函数实现。
已知n=0或1时,F(n)=1,若n=2时 F(n)=F(n-1)+F(2),由此输入n不管是什么数字,都需要从F(0)=1和F(1)=1开始计算推导出n对应的值;
2、 先遍历初始列表都为为0,下标从0开始,则第二个值应为下标为0和1的值相加,所以需要对其赋固定值
3、使用range()内置函数结合for循环。定义变量为2,3,4……n,计算前两个数值相加之和,并将最终值进行返回(range()学习教程python2与python3略有区别,需注意)。
代码实现
下面展示一些 代码实现
。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Software : PyCharm
# @File : Exercise_1.py
# @Desc : 斐波那契数列
"""
说明:以兔子繁殖为例而引入的,又称”兔子数列“
是指数列:1,1,2,3,5,8,13,21,34,......在数学上,数学家斐波那契以如下被递推方法定义:
F(0)=1,F(1)=1,F(n)=F(n-1)+F(n-2)(n=>2)
"""
def f(n):
lis = [0 for i in range(n+1)]
lis[0] = 0
lis[1] = 1
for j in range(2,(n+1)):
lis[j] = lis[j-1] + lis[j-2]
return lis[n]
num_input=int(input("按下 enter 键退出,其他任意键显示...\n"))
num = f(num_input) //递归函数实现
print("{0}的斐波那契数列得出的结果是:{1}".format(num_input,f(num_input)))