学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!
附上汇总贴:小猴编程C++ | 汇总-CSDN博客
【题目描述】
斐波那契数列
F
i
F_i
Fi有如下定义:
F
i
=
{
F
i
−
1
+
F
i
−
2
i
≥
3
1
i
≤
2
\begin{aligned} F_i= \begin{cases} F_{i-1}+F_{i-2}& \text{ $ i\ge 3 $} \\ 1& \text{ $ i\le 2 $} \end{cases} \end{aligned}
Fi={Fi−1+Fi−21 i≥3 i≤2
你需要回答斐波那契数列的第
k
k
k项
F
k
F_k
Fk除以
1
0
9
+
7
10^9+7
109+7的余数。
【输入】
一行,包含一个整数
k
k
k。
【输出】
一行,包含一个整数,表示结果。
【输入样例】
5
【输出样例】
5
【代码详解】
#include <bits/stdc++.h>
using namespace std;
int f[100005];
int main()
{
int k;
cin >> k;
f[1] = f[2] = 1;
for (int i=3; i<=k; i++) {
f[i] = (f[i-1]+f[i-2]) % 1000000007; // 计算斐波那契数列,计算过程就开始对1e9+7进行取模,防止数据超范围
}
cout << f[k] << endl;
return 0;
}
【运行结果】
5
5