利用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解析文件示例
Jan 23 Python
简述Python中的进程、线程、协程
Mar 18 Python
教你用Python脚本快速为iOS10生成图标和截屏
Sep 22 Python
Vue的el-scrollbar实现自定义滚动
May 29 Python
Python生成rsa密钥对操作示例
Apr 26 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
Apr 26 Python
python禁用键鼠与提权代码实例
Aug 16 Python
如何通过python实现全排列
Feb 11 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
Mar 10 Python
Django数据库操作之save与update的使用
Apr 01 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
Python3爬虫关于识别点触点选验证码的实例讲解
Jul 30 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
ajax取消挂起请求的处理方法
2013/03/18 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
2015/08/31 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
javascript获得CheckBoxList选中的数量
2009/10/27 Javascript
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
JavaScript打字小游戏代码
2011/12/26 Javascript
Extjs4 类的定义和扩展实例
2013/06/28 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
微信企业号开发之微信考勤Cookies的使用
2015/09/11 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
django如何自己创建一个中间件
2019/07/24 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
整理HTML5的一些新特性与Canvas的常用属性
2016/01/29 HTML / CSS
Python中如何定义一个函数
2016/09/06 面试题
英文简历中的自荐信范文
2013/12/14 职场文书
爱国口号
2014/06/19 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
深入理解python协程
2021/06/15 Python