利用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 yield使用方法示例
Dec 04 Python
Python统计列表中的重复项出现的次数的方法
Aug 18 Python
Python常用随机数与随机字符串方法实例
Apr 09 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
pycharm new project变成灰色的解决方法
Jun 27 Python
在python中,使用scatter绘制散点图的实例
Jul 03 Python
python 实现创建文件夹和创建日志文件的方法
Jul 07 Python
python 字符串常用函数详解
Sep 11 Python
Django中文件上传和文件访问微项目的方法
Apr 27 Python
Win10环境中如何实现python2和python3并存
Jul 20 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 Python
对PyTorch中inplace字段的全面理解
May 22 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制作静态网站的模板框架(二)
2006/10/09 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
javascript Window及document对象详细整理
2011/01/12 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
浅谈jQuery的offset()方法及示例分享
2015/07/17 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
jquery中attr、prop、data区别与用法分析
2019/09/25 jQuery
vue递归获取父元素的元素实例
2020/08/07 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
在ubuntu16.04中将python3设置为默认的命令写法
2018/10/31 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
在python里从协程返回一个值的示例
2019/02/19 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
Python基于class()实现面向对象原理详解
2020/03/26 Python
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
《猫》教学反思
2014/02/26 职场文书
学校三节实施方案
2014/06/09 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
村委会贫困证明范本
2014/09/17 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
2014流动人口计划生育工作总结
2014/12/20 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
初中政治教师教学反思
2016/02/23 职场文书
React 高阶组件HOC用法归纳
2021/06/13 Javascript
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android