菲波那切数列数列的应用场景还是比较多的,比如可以在考试的时候考你递归啊,早上碰到的一道题就是这样,骄傲地写下递归方程,结果TLE了,然后旁边的大神给我说了一个叫滚动数组的东西。。。题目是这样的You are climbing a stair case.It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps.In how many distinct ways can you climb to the top?

1.首先是我们很容易想到的递归算法

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

写好递归函数的出口,即爬1层楼梯和爬0层楼梯都只有一种方法。那么所有剩下的爬n层楼梯的方法由两部分组成,最后一步爬2层楼梯的方法数+最后一步爬1层楼梯的方法数。但是这种方法TLE了。。。

2.下面给出大神教我的滚动数组

噱头比较NB而已,其实就是用长度为3的数组滚动着重复利用已有的元素值得到你想要的结果。不要问我为什么是长度为3的数组。因为斐波那契数列里面你得到一个数只需要知道它前两个数即可:C(n) = C(n-1)+C(n-2),用更长的反而不好处理。TALK IS CHEAP,SHOW YOU MY CODE

int climbStairs(int n) {int a[3] = {1,1,2};//首先将数组初始化为菲波那切数列前3个数if(n < 3)return a[n];for(int i = 3;i <= n;i++){//注意是i = 3a[i%3] = a[(i-2)%3]+a[(i-1)%3];}return a[n%3];
}

3.应该还有一种纯靠数学推导的数学通项公式,我数学不好就不弄了,如果你需要这样实现的话,就百度一下吧

如果文章有帮助的话我会很高兴,富裕的朋友接着往下看

最近揭不开锅了。。。您的帮助会是我最大的动力。。。

          

求菲波那切数列数列第n项三种方法小结相关推荐

  1. python求1到n的乘积_Python实现矩阵相乘的三种方法小结

    问题描述 分别实现矩阵相乘的3种算法,比较三种算法在矩阵大小分别为22∗2222∗22, 23∗2323∗23, 24∗2424∗24, 25∗2525∗25, 26∗2626∗26, 27∗2727 ...

  2. 求多个数的最大公约数和最小公倍数,用三种方法实现。

    题目:求两个正整数的最大公约数和最小公倍数. 基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出. 提高要求:1.三种以上算法解决两个正整数最大公约 ...

  3. JAVA求菲波那切数列

    斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列" ...

  4. 求菲波那切数列第n项

    程序: n=int(input()) def fbnq(n):if n==1:return 1elif n==2:return 1else:return fbnq(n-1)+fbnq(n-2) pri ...

  5. python求两个数的最大公约数穷举法_求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法...

    #coding:utf-8 importtime#辗转相除法: defcommonDivisor1(num1,num2):if num1 temp=num1 num1=num2 num2=tempif ...

  6. 求无序数组的第K(大/小)数的三种方法

    题目描述:给定一个无序数组(长度为n)和一个正整数 K,让你求此数组中第K大的数 方法1:最简单的思路,你肯定会想到 先把数组排序,然后再取下标为K的对应数组元素.这种方法肯定是可行的,但是这种方法无 ...

  7. 来一波自动玩“别踩白块“脚本(三种方法)

    灵感来源: 本来是想写谷歌的小恐龙的自动脚本的,很可惜写了三个多小时仍然无法解决问题,于是换个方向,用检测像素点的方式来自动化.当然方法不止三种,也可以用opencv来写,但是我认为多调用一个包却使用 ...

  8. PTA题库函数递归 菲波那切数列(递归版)

    请编写递归函数,求菲波那切(Fibonacci)数列某一项的值. 0, 1, 1, 2, 3, 5, 8, 13 , 21, 34, 55, 89, 144, ... 函数原型 double Fib( ...

  9. 辛星Java动态规划教程第一篇:求斐波那切数列

    对于理解动态规划来说,最简单的题目还是求斐波那切数列的第i个值.很多资料都把它作为一个印子,以此来介绍动态规划的基本定义. 不过也有些书认为菲波那切数列过于简单,以致于不能让读者感受到动态规划的优美之 ...

最新文章

  1. IJCAI 2020开幕,杰出论文奖、卓越研究奖、约翰·麦卡锡奖等8项大奖公布 | AI日报...
  2. 【配置文件】大家来谈谈这个log4j到底有什么用?
  3. 10无法更新系统_华为EMUI系统或停留安卓11,无法更新
  4. 调用vba_VBA代码解决方案的第86讲内容:VBA代码的优化篇
  5. Confuser.crproj
  6. 不格式化 删除内存卡上的顽固文件(PC套件操作失败 文件无法删除)
  7. MyBatis递归查询
  8. Python3 用turtle库学画画——(一)美国队长盾牌
  9. 关于三栏式布局的几种方式
  10. 【Python】从堆糖爬取图片Demo
  11. 【最大流,最大匹配,最大独立集】2018.6.18 【2018提高组】模拟C组 T3 沙耶的玩偶
  12. L1-049 天梯赛座位分配
  13. vscode格式化html代码失效了,VSCode格式化代码功能失效的bug解决方法
  14. SQL Server锁与事务隔离
  15. linux ip打印机驱动程序,Ubuntu下佳能ip1000打印机驱动的安装
  16. android openal播放器,Android OpenAL 录音参数不正确
  17. Pr 入门教程:如何设置动画旋转图形?
  18. 不存在开发板或没有链接_木星对地球的意义有多重大?科学家:若没有木星,地球或将不存在...
  19. Android 三国杀 百度账号,三国杀移动版多酷账号版本下载-三国杀移动版多酷版v3.9.2 安卓版-腾牛安卓网...
  20. Windows Mobile 5.0 SDK 下载地址(转)

热门文章

  1. 风云直播播放器 [封装网页播放]-在线免费看TV
  2. 【小林课堂】【光学】光的传播与反射 (2)光的反射
  3. Error in library(nutshell) : 不存在叫‘nutshell’这个名字的程辑包
  4. 嵌入式设备联网之初识LwIP协议(1)
  5. Android机型适配问题——Camera拍照时快门咔嚓声
  6. TREXCHPNA9S1S罗斯蒙特新款手操器
  7. JS原型与原型链(面试题)
  8. Tenth 构造函数和析构函数
  9. C++ 个人财务收支管理系统
  10. OpenLayers、geojson矢量图