利用Python实现斐波那契数列的方法实例


Posted in Python onJuly 26, 2020

今天我们来使用Python实现递归算法求指定位数的斐波那契数列

首先我们得知道斐波那契数列是什么?

  • 斐波那契数列又叫兔子数列
  • 斐波那契数列就是一个数列从第三项开始第三项的值是第一项和第二项的和依次类推

其次我们再来看递归算法是什么?

递归就是如果函数(子程序)包含了对其自身的调用,该函数就是递归的

话不多说上案例:

第一种方法:不使用递归算法

#首先定义一个新的列表来储存最后的结果
new_list = []
# 然后让用户输入指定位数
my_put = int(input("请输入使用递归算法求指定位数的斐波那契数列的位数: "))
# 利用for循环来遍历数组
for idx in range(my_put):
 # 利用if判断第使得第一位和第二位都为1
 if idx == 0:
  new_list.append(1)
 elif idx == 1:
  new_list.append(1)
  # 第三次的时候 当idx等于二的时候 然后第三项的话 应该的是第一项和第二项的和第一项的索引是0 第二项的索引是1
  #但是上面if判断以后 下面从idx为二的时候开始
  # 所以应该是索引为idx-2和索引为idx-1的相加得出第三项
 else:
  new_list.append(new_list[idx - 2] + new_list[idx - 1])
# 最后输出最后的数列
print(new_list)

第二种方法:使用递归算法

def get_num(n):
 # 获取斐波拉契数列中第n个数字的值
 if n == 1 or n == 2:
  return 1
 return get_num(n - 1) + get_num(n - 2)


# 把获取的斐波拉契数字存放到列表中
nums = []
for i in range(1, 9):
 nums.append(get_num(i))
 # get_num获得一个斐波拉契数字

print(nums)

两种方法最后的运行结果都为:

请输入使用递归算法求指定位数的斐波那契数列的位数: 9
[1, 1, 2, 3, 5, 8, 13, 21, 34]

总结

到此这篇关于利用Python实现斐波那契数列的文章就介绍到这了,更多相关Python实现斐波那契数列内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 开发Activex组件方法
Nov 08 Python
Python之用户输入的实例
Jun 22 Python
Python tkinter label 更新方法
Oct 11 Python
numpy数组之存取文件的实现示例
May 24 Python
Python实现二叉树的最小深度的两种方法
Sep 30 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
如何基于python实现不邻接植花
May 01 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
Jun 04 Python
python 实现一个图形界面的汇率计算器
Nov 09 Python
python实现KNN近邻算法
Dec 30 Python
基于PyQt5制作一个群发邮件工具
Apr 08 Python
3分钟看懂Python后端必须知道的Django的信号机制
Jul 26 #Python
给Django Admin添加验证码和多次登录尝试限制的实现
Jul 26 #Python
python如何支持并发方法详解
Jul 25 #Python
Python获取浏览器窗口句柄过程解析
Jul 25 #Python
用Python 爬取猫眼电影数据分析《无名之辈》
Jul 24 #Python
基于Python实现简单学生管理系统
Jul 24 #Python
用python实现学生管理系统
Jul 24 #Python
You might like
php email邮箱正则
2008/10/08 PHP
php随机输出名人名言的代码
2012/10/07 PHP
PHP获取一段文本显示点阵宽度和高度的方法
2015/03/12 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
基于jquery的拖动布局插件
2011/11/25 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
jQuery Ajax调用WCF服务详细教程
2015/03/31 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
Bootstrap实现下拉菜单多级联动
2017/11/23 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
python定时执行指定函数的方法
2015/05/27 Python
Python的Django框架下管理站点的基本方法
2015/07/17 Python
python模块之time模块(实例讲解)
2017/09/13 Python
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
伊索寓言教学反思
2014/05/01 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
食堂管理制度范本
2015/08/04 职场文书
聘任通知书
2015/09/21 职场文书
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python
sql查询语句之平均分、最高最低分及排序语句
2022/05/30 MySQL