利用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的tkinter布局之简单的聊天窗口实现方法
Sep 03 Python
python实现带验证码网站的自动登陆实现代码
Jan 12 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
Mar 30 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
python 实现生成均匀分布的点
Dec 05 Python
TensorFlow查看输入节点和输出节点名称方式
Jan 04 Python
解决Pycharm 导入其他文件夹源码的2种方法
Feb 12 Python
Django Model中字段(field)的各种选项说明
May 19 Python
Python map及filter函数使用方法解析
Aug 06 Python
Python读取xlsx数据生成图标代码实例
Aug 12 Python
教你利用Selenium+python自动化来解决pip使用异常
May 20 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去除数组中重复数据
2014/11/18 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
2015/11/11 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
php操作access数据库的方法详解
2017/02/22 PHP
$.ajax返回的JSON无法执行success的解决方法
2011/09/09 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
JavaScript中的Math 使用介绍
2014/04/21 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
详解react-refetch的使用小例子
2019/02/15 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
python切换hosts文件代码示例
2013/12/31 Python
用Python编写简单的定时器的方法
2015/05/02 Python
OpenCV实现人脸识别
2017/04/07 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
python实现单向链表详解
2018/02/08 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
酒店个人求职信范文
2014/01/25 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
2015年超市工作总结
2015/04/09 职场文书
2015年助理政工师工作总结
2015/05/26 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android