[题解]斐波那契数列
题目
题目描述
请编写一个程序,输出斐波那契数列的第nnn项模109+710^9+7109+7的值。
斐波那契数列有以下递归算式定义。
fib(n)={1,n>01,n=1fib(n−1)+fib(n−2),otherfib(n)=\left\{\begin{matrix} 1,n>0\\ 1,n=1\\ fib(n-1)+fib(n-2),other \end{matrix}\right. fib(n)=⎩⎨⎧1,n>01,n=1fib(n−1)+fib(n−2),other
输入格式
输入一个非负整数n(n<106)n(n < 10^6)n(n<106)。
输出格式
输出斐波那契第nnn项模109+710^9 + 7109+7的值
题解
#include<cstdio>
using namespace std;
const int N = 1e6 + 10,MOD = 1e9 + 7;
int f[N];
int main(){int n;scanf("%d",&n);f[0] = f[1] = 1;for(int i = 2;i <= n;i++)f[i] = (f[i - 1] + f[i - 2]) % MOD;printf("%d\n",f[n]);return 0;
}
斐波那契数列,最容易想到也最容易实现的一种方式是递归,如下所示:
int f(int i){if(i == 1 || i == 0) return 1;return f(i - 1) + f(i - 2);
}
然而在这里行不通。
请注意数据范围:n<106n < 10^6n<106
由于数据规模比较大,使用递归存在爆栈的隐患。
所以这里可以使用动态规划的方式理解和实现。
f[i]f[i]f[i]为一个状态,当i>1i > 1i>1时,其值由更小的两个状态值递推而出。
此题常作为动态规划的入门教学题,需要特别注意理解其中的状态表示和状态递推的思想。
原创不易,感谢支持!
[题解]斐波那契数列相关推荐
- 牛客题霸 [斐波那契数列] C++题解/答
斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1). n<=39 题解: 斐波那契数列..递推的基础题目 众 ...
- 斐波那契数列升级版(洛谷P2626题题解,C++语言描述)
题目要求 题目链接 分析 首先是求斐波那契数列,这东西我就不说了,能看到这篇题解的你肯定会. 为什么要用数组呢?为了记忆化,防止重复算. 当然,由于本题是单查询,所以不必记忆化,但记忆化对多查询真的会 ...
- 洛谷P1962 斐波那契数列题解
题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 为整数) 题目描述 请 ...
- NOIP模拟题 斐波那契数列
题目大意 给定长度为$n$序列$A$,将它划分成尽可能少的若干部分,使得任意部分内两两之和均不为斐波那契数列中的某一项. 题解 不难发现$2\times 10^9$之内的斐波那契数不超过$50$个 先 ...
- 斐波那契数列及青蛙跳台阶问题
题目1: 写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项. 斐波那契(Fibonacci)数列定义例如以下: f(n)=⎧⎩⎨⎪⎪0,1,f(n−1)+f(n−2),n=0n=1n& ...
- HDU4549 M斐波那契数列 —— 斐波那契、费马小定理、矩阵快速幂
题目链接:https://vjudge.net/problem/HDU-4549 M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others) Memory Li ...
- LeetCode——动态规划:斐波那契数列
斐波那契数列 目录 爬楼梯 强盗抢劫 强盗在唤环形街区抢劫 信件错排 注:具体解析请点击链接进入LeetCode题解区. 1. 爬楼梯 https://leetcode-cn.com/problems ...
- 斐波那契数java实现_斐波那契数列Java实现[剑指offer]
描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 题解 1.递归实现 采用递归的方式进行实现时,从第n个节点向下递归时,存 ...
- c语言斐波那契数列_剑指Offer-10-I.斐波那契数列
题目 题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - ...
最新文章
- 本地搭建Hadoop伪分布式环境之四:开启搭建Hadoop2.4.0之旅
- cpu只能单通道是什么表现_【小白入门】为什么要组内存双通道?
- 谈谈对集合框架的理解?
- JavaScript中的this关键字
- 路由器 android 打印机,谷歌关闭云打印服务,安卓和Chrome办公用户要慌了
- Java的jps命令使用详解
- mysql 错误问题_Mysql常见的几个错误问题及解决方法
- win11如何切换输入法 win11快速切换输入法
- IPS入侵防御系统、IDS入侵检测系统
- TIA博途_OB组织块的功能和使用方法介绍
- 局域网有几台电脑频繁断网_电脑经常自动断网掉线分析
- 导出的 EXCEL 用 office2016 打不开
- java里emp是什么_EMP微前端分享内容回顾(中)
- 软件测试简历,别再做无用的简历了
- 使用supervisor管理laravel队列 - 配置文件supervisord.conf
- VBA写入公式(3):身份证公式集
- 《了不起的 JavaScript 工程师 - 电子书》
- Java 字符串分割split空字符串丢失解决方案
- 30秒在线卖出3000套房,对于云系统来说只是小意思!
- 火山/映客直播里用到的库