利用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实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
Jul 11 Python
深入解析Python编程中JSON模块的使用
Oct 15 Python
Python实现计算最小编辑距离
Mar 17 Python
python爬取拉勾网职位数据的方法
Jan 24 Python
python中的闭包函数
Feb 09 Python
Python DataFrame.groupby()聚合函数,分组级运算
Sep 18 Python
利用python在excel里面直接使用sql函数的方法
Feb 08 Python
django admin后台添加导出excel功能示例代码
May 15 Python
详解python解压压缩包的五种方法
Jul 05 Python
Spring Cloud Feign高级应用实例详解
Dec 10 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
Nov 13 Python
python基于socket模拟实现ssh远程执行命令
Dec 05 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
星际争霸中的对战模式介绍
2020/03/04 星际争霸
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
PHP容易被忽略而出错陷阱 数字与字符串比较
2011/11/10 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
PHP转盘抽奖接口实例
2015/02/09 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
jQuery代码优化之基本事件
2011/11/01 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
js将键值对字符串转为json字符串的方法
2018/03/30 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
django js 实现表格动态标序号的实例代码
2019/07/12 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
卡西欧G-SHOCK英国官网: 防水防震手表
2018/01/08 全球购物
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
小学运动会班级口号
2014/06/09 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
个人自查自纠材料
2014/10/14 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL