[计蒜客]斐波拉契数列 原创
题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛)
算法标签 递推,记忆化
题目描述
相信小伙伴们都学过斐波那契数列,它是这样的一个数列:1,1,2,3,5,8,13,21…。
用fn表示斐波拉契数列的第项,则有:f1=f2=1,fn=fn-1+fn-2(n>2).
输入一个n,求出fn对10E9+7取模结果。
输入格式
输入一个整数 n(1 <= n <= 100000)
输出格式
输入 fn{mod} 1000000007
样例输入
3
样例输出
2
题目思路
1.用三个变量模拟数组滚动,省区数组
2.求出fn对10E9+7取模结果
,所以直接对(f2+f1)取余,这样必然整个数列满足条件
AC代码
#include <iostream>
using namespace std;
const int N=1e9+7;
int main()
{
long long f3,f2=1,f1=1;
int n;
cin>>n;
for(int i=3;i<=n;i++)f3=(f2+f1)%N,f1=f2,f2=f3;
cout<<f3;
return 0;
}
更新写法
#include<iostream>
using namespace std;
const int MOD=1e9+7,N=100000;
int f[N]={0,1,1};
int main()
{
int n;
cin>>n;
for(int i=3;i<=n;i++)
f[i]=(f[i-1]+f[i-2])%MOD;
cout<<f[n];
return 0;
}
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)