斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1

给定 n ,请计算 F(n) 。

示例 1:

输入:n = 2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1

示例 2:

输入:n = 3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2

示例 3:

输入:n = 4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3

提示:

  • 0 <= n <= 30

方法:

1.确定dp数组

2.确定递推公式

3.确定dp数组如何初始化

4.确定遍历顺序(从前往后,从后往前)

5.若出错,输出dp数组

1.确定dp数组

1,1,2,3,5,8,13,21,34,55……

2.确定递推公式

dp[i]=dp[i-1]+dp[i-2]

3.确定dp数组如何初始化

dp[0]=1,dp[1]=1

4.确定遍历顺序(从前往后,从后往前)

从前往后

代码:

#include<iostream>
#define MAX 30
using namespace std;int fib(int N) {if (N <= 1) {return N;}int dp[MAX];dp[0] = 1;dp[1] = 1;for (int i = 2; i <= N; i++) {dp[i] = dp[i - 1] + dp[i - 2];}return dp[N-1];
}int main() {int n;cin >> n;printf("%d", fib(n));return 0;
}

509.斐波那契数列相关推荐

  1. 斐波那契数列前n项和 c++_蹲在马桶看算法(Day8—LeetCode之NO.509 斐波那契数列)...

    问题引入: 最先研究Successione di Fibonacci(斐波那契数列或兔子数列)的是意大利Leonardo Pisano Bigollo(又称斐波那契),最先是描述兔子生长的时候用上了这 ...

  2. java遍历斐波纳契数列_详解循环、迭代、递归、分治(Leet Code 509 斐波那契数列),实际运用...

    Multiple solutions of Fibonacci (Python or Java) 本章是用英文写的,作为或想成为一名优秀的攻城狮,习惯阅读英文文档将使你受益良多.例如更好的查看最新版的 ...

  3. LeetCode509(力扣509) :斐波那契数列 C++ 多种思路与详细解析

    509 斐波那契数列 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列.该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F(0) = 0, F(1) = 1 ...

  4. LeetCode-动态规划基础题-509. 斐波那契数

    描述 题目如下: 509. 斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F(0) = 0 ...

  5. 【快乐水题】509. 斐波那契数

    原题: 力扣链接:509. 斐波那契数 题目简述: 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F( ...

  6. 剑指Offer - 面试题10- I. 斐波那契数列

    文章目录 1. 题目 2. DP解题 3. 面试题 08.01. 三步问题 4. LeetCode 509. 斐波那契数 1. 题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 ...

  7. 【README2】动态规划之斐波那契数列说明重叠子问题如何解决

    接上文:[README1]动态规划之解题思路 文章目录 斐波那契数列讲解--解决重叠子问题 (1)暴力递归 (2)带有备忘录的递归解法 (3)自底向上--dp数组解法 (4)总结:状态转移方程 (5) ...

  8. D38| DP理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

    DP理论基础 重要知识点: 1.动规和贪心的区别:动规是由前一个状态推导出来的,而贪心是局部直接选最优的 2.动规五部曲: 1)确定dp数组(dp table)以及下标的含义 2)确定递推公式 3)d ...

  9. 斐波那契数列(Java语言)

    LeetCode 509 斐波那契数 LeetCode链接 斐波那契数(通常用F(n)表示)的定义: F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2),n>1由斐波那契数构成的序 ...

最新文章

  1. 使用scikit-learn进行预处理
  2. #define用法集锦[修正版]
  3. Mysql8.0.22解压版安装教程-小白专用(Windows系统)
  4. 怎么获取layer中的表单值_layer获取弹出frame层数据
  5. docker安装rocketmq你学会了吗
  6. [SCOI2003]字符串折叠
  7. 灰度调节_MIUI12稳定版第二批部分全量推送,小米8灰度测试,新增三大亮点
  8. VB6.0《第二行代码》4-游戏安全,逆向工程-用CE找多级指针HP的基址和偏移量并且用VB超级模块读取
  9. geos linux编译,geos库交织编译生成ARM平台库
  10. 强大的sed_拔剑-浆糊的传说_新浪博客
  11. 干了5年的前端,实在熬不动了...
  12. java怎么连发子弹_HTML-坦克大战-完成子弹连发功能(三)
  13. 如何制作并使用python发布的模块压缩包和whl包,并进行pip安装和使用教程,加上传Pypi,上传之后又如何增删whl项目
  14. UPA/URA双极化天线的协方差矩阵结构
  15. Web过滤器:Filter
  16. 58 同城 post 参数分析之 eval 加密
  17. 几种快速传输大文件的方式
  18. 第01章-成本,你真的算对过吗?
  19. [深度学习] ncnn编译使用
  20. 两种电机类型:磁感应电动机与磁电动机

热门文章

  1. C语言的发展及其特点
  2. android 听筒播放音乐
  3. 获取微信聊天窗口的小程序入口参数
  4. PIXIJS学习笔记
  5. 齐次坐标(Homogeneous coordinates)
  6. 长发变短发,卷发变直发,坚持每天梳头
  7. linux 串口 延迟,linux串口操作及设置详解
  8. 使用QQ邮箱无法收到Github上发送的验证码?
  9. 什么是Kodu---Kodu少儿编程第一天
  10. 关于删除一条动态的同时删除这条动态的所有评论