利用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的Flask站点中集成xhEditor文本编辑器的教程
Jun 13 Python
python出现"IndentationError: unexpected indent"错误解决办法
Oct 15 Python
Python中enumerate()函数编写更Pythonic的循环
Mar 06 Python
python调用百度语音识别api
Aug 30 Python
Python运行不显示DOS窗口的解决方法
Oct 22 Python
使用TensorFlow实现简单线性回归模型
Jul 19 Python
python实现将文件夹内的每张图片批量分割成多张
Jul 22 Python
Python pandas用法最全整理
Aug 04 Python
Python序列类型的打包和解包实例
Dec 21 Python
Python 读取位于包中的数据文件
Aug 07 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 Python
python 获取计算机的网卡信息
Feb 18 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
如何去掉文章里的 html 语法
2006/10/09 PHP
深入分析php之面向对象
2013/05/15 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
2012/01/15 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
如何管理Vue中的缓存页面
2021/02/06 Vue.js
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
Python3简单实例计算同花的概率代码
2017/12/06 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
python的sorted用法详解
2019/06/25 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
婚庆公司的创业计划书
2014/01/22 职场文书
宿舍保安职务说明书
2014/02/25 职场文书
党员公开承诺事项
2014/03/25 职场文书
档案信息化建设方案
2014/05/16 职场文书
运动会加油口号
2014/06/07 职场文书
创先争优承诺书
2015/01/20 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
刑事上诉状(无罪)
2015/05/23 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫