利用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数据类型详解(二)列表
May 08 Python
快速入手Python字符编码
Aug 03 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
基于Python检测动态物体颜色过程解析
Dec 04 Python
python3连接MySQL8.0的两种方式
Feb 17 Python
基于python检查矩阵计算结果
May 21 Python
Python命名空间namespace及作用域原理解析
Jun 05 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
Jun 29 Python
Python延迟绑定问题原理及解决方案
Aug 04 Python
pyqt5 textEdit、lineEdit操作的示例代码
Aug 12 Python
Pandas数据分析的一些常用小技巧
Feb 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
php 函数使用方法与函数定义方法
2010/05/09 PHP
smarty表格换行实例
2014/12/15 PHP
javascript背投广告代码的完善
2008/04/08 Javascript
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
JavaScript 继承详解 第一篇
2009/08/30 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
详细解析Python当中的数据类型和变量
2015/04/25 Python
python显示生日是星期几的方法
2015/05/27 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
python实现列表的排序方法分享
2019/07/01 Python
python函数不定长参数使用方法解析
2019/12/14 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
PHP高级工程师面试问题推荐
2013/01/18 面试题
大学生个人求职口试自我评价
2014/02/16 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
村庄环境整治方案
2014/05/15 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
三年级学生期末评语
2014/12/26 职场文书
二婚主持词
2015/06/30 职场文书
Python+Appium新手教程
2021/04/17 Python
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android
Python保存并浏览用户的历史记录
2022/04/29 Python