裴波那契(Fibonacci)数列
f(n)=

⎧⎩⎨0,1,f(n−1)+f(n−2),n =0n =1n>1

\begin{cases} 0, & \text{$n$ =0} \\ 1, & \text{$n$ =1}\\ f(n-1)+f(n-2),&\text{$n$>1} \end{cases}

求裴波那契数列的第n项。(题目来自剑指offer)
1.递归解法,效率很低的解法,不用
一看到这个题,我们就很容易窃喜的想到这种解法
很多f(i)进行了重复计算,随着n的增大,计算量急剧增加,时间复杂度以n的指数方式递增,存在很严重的效率问题。

 int Fibonacci(int n) {if(n<=0)   return 0;if(n==1)   return 1;return Fibonacci(n-1)+Fibonacci(n-2);  }

2.用循环实现递归,面试官期待的解法(O(n))
方法1中的递归代码之所以慢是因为重复计算的太多,我们只要想办法避免重复就行了。可以把已经得到的数列中间项保存起来,如果下次需要的时候先查找一下,如果前面已经计算过了就不用再重复计算了。

int Fibonacci(int n) {if(n<=0)   return 0;if(n==1)   return 1;int a=1;int b=0;int fib=0;for(int i=2;i<=n;i++){fib=a+b;b=a;a=fib;}return fib;}

3.将求裴波那契数列转换成矩阵的乘方
有创意,但代码复杂,不实用

裴波那契数列(循环实现递归)相关推荐

  1. 裴波那契数列的递归实现与非递归实现

    斐波那契数列是数学家列昂纳多·斐波那契(Leonardoda Fibonacci[1]  )以兔子繁殖为例子而引入,也称为"兔子数列". 指的是这样一个数列:0.1.1.2.3.5 ...

  2. 栈的应用(递归:例子裴波那契数列 四则运算表达式求值 :后缀(逆波兰) )

    递归: -栈有一个很重要的应用:在程序设计语言中实现递归. 当你往镜子前面一站,镜子里面就有-一个你的像. 但你试过两面镜子一起照吗?如果A.B两面镜子相互面对面放着,你往中间- -站,嘿,两面镜子里 ...

  3. 裴波那契数列的递归和动态规划算法

    裴波那契数列的递归和动态规划算法 一.    概论 通过对裴波那契数列的例子,分析了递归和动态规划算法的本质.并且说明了两种算法的区别. 裴波那契数列:800年前,意大利的数学家斐波纳契出版了惊世之作 ...

  4. 递归-裴波那契数列(代码、分析、汇编)

    目录: 代码: 分析: 汇编: 代码: main.c #include <stdio.h>//该程序输出裴波那契数列 int fibonacci(int n) {if( n > 1 ...

  5. 裴波那契数列及其递归算法

    裴波那契数列起源于兔子数列,假设第一个月有一对刚出生的兔子,第二个月兔子进入成熟期,我三个月开始生育小兔子,而一对成熟的兔子会在每月生育一对小兔子,兔子永远不会死去...n月后会有多少只兔子 每月的兔 ...

  6. fibonacci斐波那契数列详解 递归求Fn非递归求Fn求n最近的斐波那契数

    斐波那契fibonacci 斐波那契额数列即前两项F(0)和F(1)都是1,之后的每一项都是前两项相加和即F(3)=2,F(4)=3,F(5)=5; 通项公式:F(n+2)=F(n+1)+F(n). ...

  7. 浅谈矩阵加速——以时间复杂度为O(log n)的算法实现裴波那契数列第n项及前n之和使用矩阵加速法的优化求法

    首先请连矩阵乘法乘法都还没有了解的同学简单看一下这篇博客: https://blog.csdn.net/weixin_44049566/article/details/88945949 首先直接暴力求 ...

  8. 汇编:裴波那契数列前50项

    汇编:裴波那契数列前50项 DATAS SEGMENTDW 200 DUP(0);一个数字需要64位,DW是16位,一共50个数字DATAS ENDSSTACKS SEGMENTDW 30 DUP(0 ...

  9. 裴波那契数列python

    输出n个长度的裴波那契数列 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1.从第三项开始,每一项都等于前两项之和 def fib ...

最新文章

  1. PostCSS原理解析
  2. Android应用连接代理服务器状况监测解决
  3. java怎么把数据封进对象里_(Java)想把数组中一条一条的数据全部放入对象中去..要怎么做呢...
  4. StarUML 逆向工程插件加载失败问题解决
  5. Tax debug and BP number external generation
  6. matlab的grayscale,Python 是否等效于Matlab函数“imfill”的grayscale??
  7. 这里聚集了优秀的数学老师、家长,有超多惊喜在等你!
  8. leecode 题解 || Merge k Sorted Lists 问题
  9. 计算机配件推荐系统论文摘要,个性化推荐系统设计
  10. 滑动cell的时候执行动画效果
  11. keil c语言 位域,联合体位域在keil c遇到的问题怎样解决?
  12. 关联容器----关联容器概述,关联容器操作,无序容器
  13. vue element table 修饰
  14. HUD 2544 最短路 迪杰斯特拉算法
  15. 可视化动画:数据结构和算法
  16. 使用 IntraWeb (10) - CSS
  17. java nginx 重启吗_Nginx的启动、停止、平滑重启
  18. 白话用consul作为注册中心搭建微服务
  19. android安装管理,android-使用下载管理器下载后安装apk,并退出...
  20. 关于《高油压调速器机械液压系统的优化设计》的疑问

热门文章

  1. LIN总线协议详解10(LIN的API)
  2. nginx配置和优化详解
  3. Mac 下用Homebrew安装Go
  4. PHP error_reporting
  5. Game Maker:一款教学工具造就了一批独立开发者
  6. ArcSDE之SDE命令
  7. mysql5.7增加ssl认证
  8. Java:面向Web和移动应用的Java开发的增长
  9. [20160213]关于ansi语法.txt
  10. dubbo推荐用什么协议?