斐波那契数列

描述

  大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。

斐波那契数列是一个满足

的数列。

数据范围:1≤n≤40

要求:空间复杂度 O(1),时间复杂度 O(n) ,本题也有时间复杂度 O(logn) 的解法

示例1

输入:
4
返回值:
3
说明:
根据斐波那契数列的定义可知,fib(1)=1,fib(2)=1,fib(3)=fib(3-1)+fib(3-2)=2,fib(4)=fib(4-1)+fib(4-2)=3,所以答案为3。

示例2

输入:
1
返回值:
1

示例3

输入:
2
返回值:
1

思路/解法

方式一

递归求解。

class Solution {public:int Fibonacci(int n) {if(n == 1 || n == 2)return 1;return Fibonacci(n-1) + Fibonacci(n-2);}
};

方式二

使用数组求解。

class Solution {public:int Fibonacci(int n) {vector<int> arr(n);arr[0] = 1;arr[1] = 1;for(int i = 2;i < n;i++)arr[i] = arr[i-1] + arr[i-2];return arr[n-1];}
};

方式三

不使用数组这类额外空间求解。

class Solution {public:int Fibonacci(int n) {if(n == 1 || n == 2)return 1;int a = 1;int b = 1;int c = a + b;for(int i = 3;i < n;i++){a = b;b = c;c = a + b;}return c;}
};

斐波那契数列(C++)相关推荐

  1. java 斐波拉_Java实现斐波那契数列

    斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n&g ...

  2. 剑指offer:面试题10- I. 斐波那契数列

    写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 ...

  3. 用递归法计算斐波那契数列的第n项

     斐波纳契数列(Fibonacci Sequence)又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1, ...

  4. 循环斐波那契数列_剑指offer #10 斐波那契数列

    (递归和循环)#10 斐波那契数列 一.斐波那契数列 定义: n = 0 , f(n) = 0 n = 1 , f(n) = 1 n > 1 , f(n) = f(n-1) + f(n-2) 思 ...

  5. 用C语言编写:判断一个≥2的整型数是否存在于斐波那契数列中?

    自己写的,感觉挺有成就感的,就展示出来吧! 判断一个≥2的整型数是否存在于斐波那契数列中? 若存在,则返回第几项:若不在,则返回-1 #include <stdio.h> long gen ...

  6. 算法(1)斐波那契数列

    1.0 问题描述 实现斐波那契数列,求第N项的值 2.0 问题分析 斐波那契数列最简单的方法是使用递归,递归和查表法同时使用,可以降低复杂度. 根据数列特点,同时进行计算的数值其实只有3个,所以可以使 ...

  7. NOIP模拟题 斐波那契数列

    题目大意 给定长度为$n$序列$A$,将它划分成尽可能少的若干部分,使得任意部分内两两之和均不为斐波那契数列中的某一项. 题解 不难发现$2\times 10^9$之内的斐波那契数不超过$50$个 先 ...

  8. 剑指offer_第7题_斐波那契数列

    题目描述 现在要求输入一个整数n 输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 理解 斐波那契数列 因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子 ...

  9. 面试官问你斐波那契数列的时候不要高兴得太早

    增加内容 递归改进版 矩阵快速幂解法 通项表达式解法 列表法 斐波那契数列应用 前言 假如面试官让你编写求斐波那契数列的代码时,是不是心中暗喜?不就是递归么,早就会了.如果真这么想,那就危险了. 递归 ...

  10. 斐波那契数列性质【记住】

    斐波那契数列 斐波那契数列递推 F(1)=1,F(0)=0F(1)=1,F(0)=0F(1)=1,F(0)=0 F(n)=F(n−1)+F(n−2)F(n)=F(n-1)+F(n-2)F(n)=F(n ...

最新文章

  1. 【怎样写代码】确保对象的唯一性 -- 单例模式(一):问题案例
  2. 英国拟在其国内建立一套互联网过滤网
  3. mysql行级安全_MySQL学习笔记(五):MySQL表级锁和行级锁
  4. html flash 循环播放,在网页中插入flv格式的flash视频怎么让其循环播放_html/css_WEB-ITnose...
  5. js时间选择器_Vuestic Admin一款免费与美妙基于Vue.js开发的管理模板
  6. 重磅!谷歌大脑提出EfficientNet平衡模型扩展三个维度,取得精度-效率的最大化!...
  7. 对于GetMemory()函数
  8. .NetCore中的程序通过Docker在CentOS中部署
  9. Gambit 5.调试
  10. HTML制作简易个人简历(表单)
  11. oracle查询同一天生日的,关于date生日判断的问题
  12. matplotlib报错Line2D‘ object has no property ‘linestyle‘或‘linewidth‘
  13. [Maven实战-许晓斌]-[第二章]-2.3安装目录分析
  14. 微信小程序保存图片到手机相册(封装全局使用)
  15. Nodejs框架+uniapp前端微商个人相册多端小程序
  16. 大话西游2同一个账号同一个服务器,大话西游2:服务器合并你是否支持?老玩家告诉你合服后的影响!...
  17. java程序连接MinIO 报错The request signature we calculated does not match the signature you provided.
  18. How to evaluate and motivate a speech
  19. 23种设计模式——UML类图+简要分析+例题
  20. Vivado Digilent IP核

热门文章

  1. ASIC芯片设计生产流程
  2. 自动驾驶功能架构的演进
  3. 一些程序员的找工作常见的面试问题
  4. 基于Echarts实现可视化数据大屏分析大屏监控系统
  5. Python与Java容器总结
  6. pyqt5 图像上划线_PyQt5如何用QPainter在QScrollArea上画线?
  7. Niagara N4 与物联网的学习经验分享(一 New Station)
  8. 计算机cpu对什么访问最快,CPU直接访问的存储器是什么?
  9. 蔬菜类别二级计算机,国家标准:蔬菜分类.doc
  10. 怎么禁止网络启动计算机,如何禁用、启用本地连接(网卡)?