利用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 相关文章推荐
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
Oct 01 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
Nov 17 Python
python爬虫爬取某站上海租房图片
Feb 04 Python
Python 中的range(),以及列表切片方法
Jul 02 Python
Python函数返回不定数量的值方法
Jan 22 Python
Puppeteer使用示例详解
Jun 20 Python
Python实现计算对象的内存大小示例
Jul 10 Python
Python实现决策树并且使用Graphviz可视化的例子
Aug 09 Python
使用OpCode绕过Python沙箱的方法详解
Sep 03 Python
python爬虫-模拟微博登录功能
Sep 12 Python
Python GUI库Tkiner使用方法代码示例
Nov 27 Python
python可视化大屏库big_screen示例详解
Nov 23 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
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
php读取数据库信息的几种方法
2008/05/24 PHP
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
javascript读取RSS数据
2007/01/20 Javascript
javascript引导程序
2008/10/26 Javascript
javascript offsetX与layerX区别
2010/03/12 Javascript
jquery插件 autoComboBox 下拉框
2010/12/22 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
简单学习vue指令directive
2016/11/03 Javascript
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
微信小程序的分类页面制作
2017/06/27 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
python3之微信文章爬虫实例讲解
2017/07/12 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
2020/04/18 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
英国老牌潮鞋店:Offspring
2019/08/19 全球购物
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
室内设计专业个人的自我评价
2013/10/19 职场文书
七年级地理教学反思
2014/01/26 职场文书
三年级语文教学反思
2014/02/01 职场文书
工会工作先进事迹
2014/08/18 职场文书
保密工作承诺书
2014/08/29 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
志愿者个人总结
2015/03/03 职场文书
一文搞懂Redis中String数据类型
2022/04/03 Redis