• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 求斐波那契(Fibonacci)数列通项的七种实现方法

求斐波那契(Fibonacci)数列通项的七种实现方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了求斐波那契数列第n项,递归求斐波那契数列,c语言求斐波那契数列,求斐波那契数列,java求斐波那契数列等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
一:递归实现
使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1。
二:数组实现
空间复杂度和时间复杂度都是0(n),效率一般,比递归来得快。
三:vector<int>实现
时间复杂度是0(n),时间复杂度是0(1),就是不知道vector的效率高不高,当然vector有自己的属性会占用资源。
四:queue<int>实现
当然队列比数组更适合实现斐波那契数列,时间复杂度和空间复杂度和vector<int>一样,但队列太适合这里了,
f(n)=f(n-1)+f(n-2),f(n)只和f(n-1)和f(n-2)有关,f(n)入队列后,f(n-2)就可以出队列了。
五:迭代实现
迭代实现是最高效的,时间复杂度是0(n),空间复杂度是0(1)。
六:公式实现
百度的时候,发现原来斐波那契数列有公式的,所以可以使用公式来计算的。
由于double类型的精度还不够,所以程序算出来的结果会有误差,如果把公式展开计算,得出的结果就是正确的。
完整的实现代码如下:

七:二分矩阵方法

如上图,Fibonacci 数列中任何一项可以用矩阵幂算出,而n次幂是可以在logn的时间内算出的。
下面贴出代码:
</div>

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 求斐波那契(Fibonacci)数列通项的七种实现方法

相关文章

  • 2017-05-28C++中CSimpleList的实现与测试实例
  • 2017-05-28C语言编程中函数的基本学习教程
  • 2017-05-28HDOJ 1443 约瑟夫环的最新应用分析详解
  • 2017-05-28C语言实现字符串匹配KMP算法
  • 2017-05-28简要对比C语言中三个用于退出进程的函数
  • 2017-05-28C++递归删除一个目录实例
  • 2017-05-28基于C++中sprintf的错误总结详解
  • 2017-05-28C语言 变量详解及示例代码
  • 2017-05-28C++如何调用matlab函数
  • 2017-05-28C语言之单向链表详解及实例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 详解C++编程中的主表达式与后缀表达式编写基础
    • 结构体类型数据作为函数参数(三种方法)
    • C++实现优酷土豆去视频广告的方法
    • C语言static修饰函数详细解析
    • 详解C语言gets()函数与它的替代者fgets()函数
    • C 语言基础教程(我的C之旅开始了)[三]
    • 深入解析C++中派生类的构造函数
    • 数据结构 C语言实现循环单链表的实例
    • c++函数指针和回调函数示例
    • tc编译的dos程序和vc编译的win32控制台程序的异同

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有