利用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中日期和时间格式化输出的方法小结
Mar 19 Python
python实现搜索本地文件信息写入文件的方法
Feb 22 Python
Python中index()和seek()的用法(详解)
Apr 27 Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
python实现桌面壁纸切换功能
Jan 21 Python
Python实现FTP文件传输的实例
Jul 07 Python
python 如何去除字符串头尾的多余符号
Nov 19 Python
python 使用递归实现打印一个数字的每一位示例
Feb 27 Python
linux 下selenium chrome使用详解
Apr 02 Python
Jupyter notebook 远程配置及SSL加密教程
Apr 14 Python
Pycharm 跳转回之前所在页面的操作
Feb 05 Python
Python re.sub 反向引用的实现
Jul 07 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
example1.php
2006/10/09 PHP
一个PHP的QRcode类与大家分享
2011/11/13 PHP
php数组去重复数据示例
2014/02/25 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
2013/08/02 Javascript
jQuery 隐藏和显示 input 默认值示例
2014/06/03 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
jquery解决客户端跨域访问问题
2015/01/06 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
详谈for循环里面的break和continue语句
2017/07/20 Javascript
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
vuex的使用步骤
2021/01/06 Vue.js
[02:16]卖萌的僵尸 DOTA2神话信使飞僵小宝来袭
2014/03/24 DOTA
理解Python垃圾回收机制
2016/02/12 Python
Python面向对象类继承和组合实例分析
2018/05/28 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
python实现超级玛丽游戏
2020/03/18 Python
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
旅游管理实习自我鉴定
2013/09/29 职场文书
银行实习自我鉴定
2013/10/12 职场文书
应届毕业生应聘自荐信
2013/12/07 职场文书
机关门卫制度
2014/02/01 职场文书
总经理检讨书
2014/09/15 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
JavaScript中的LHS和RHS分析详情
2022/04/06 Javascript