利用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 self,cls,decorator的理解
Jul 13 Python
在Django中创建URLconf相关的通用视图的方法
Jul 20 Python
简单理解Python中的装饰器
Jul 31 Python
浅谈Python爬取网页的编码处理
Nov 04 Python
Python用UUID库生成唯一ID的方法示例
Dec 15 Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
python机器学习包mlxtend的安装和配置详解
Aug 21 Python
Python面向对象原理与基础语法详解
Jan 02 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
Python numpy矩阵处理运算工具用法汇总
Jul 13 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
Jun 09 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
香妃
2021/03/03 冲泡冲煮
PHP 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
Yii框架数据模型的验证规则rules()被执行的方法
2016/12/02 PHP
php二维码生成以及下载实现
2017/09/28 PHP
动态加载js的几种方法
2006/10/23 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
基于vue的换肤功能的示例代码
2017/10/10 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
js实现课堂随机点名系统
2019/11/21 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
用实例说明python的*args和**kwargs用法
2013/11/01 Python
python实现sublime3的less编译插件示例
2014/04/27 Python
Python可变参数函数用法实例
2015/07/07 Python
Python 实现字符串中指定位置插入一个字符
2018/05/02 Python
Python实现模拟浏览器请求及会话保持操作示例
2018/07/30 Python
深入解析Python小白学习【操作列表】
2019/03/23 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
2019/08/13 Python
python实现学生通讯录管理系统
2021/02/25 Python
python 对xml解析的示例
2021/02/27 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
房产继承公证书
2014/04/09 职场文书
工作时间证明
2015/06/15 职场文书
退伍军人感言
2015/08/01 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
Android实现图片九宫格
2022/06/28 Java/Android