斐波那契数列
题目背景
(本道题目木有隐藏歌加粗样式曲……不用猜了……)
《爱与愁的故事第一弹·heartache》最终章。
吃完 pizza,月落乌啼知道超出自己的预算了。为了不在爱与愁大神面前献丑,只好还是硬着头皮去算钱……
题目描述
算完钱后,月落乌啼想着:“你 TMD 坑我,(以下用闽南语读)归粒靠杯靠亩诶,(以下用英读)是伊特游!”于是当爱与愁大神问多少钱时,月落乌啼说了一堆乱码。爱与愁大神说:“算了算了,我只问第n样菜价格多少?”月落乌啼写出了:
由于爱与愁大神学过编程,于是就用 11 分钟的时间求出了 Fn
的结果。月落乌啼为此大吃一惊。你能学学爱与愁大神求出 F
n的值吗?
输入格式
一行一个自然数 nn。
输出格式
只有 11 行一个实数 Fn,保留两位小数。
输入输出样例
输入 6
输出 8.00
说明/提示
对于所有数据:0 <=n<=48。
方案一
在这里插入#include<bits/stdc++.h>
using namespace std;
long long f(int n)
{
if(n==1||n==2) return 1;
else return f(n-1)+f(n-2);
}
int main()
{
int n;cin>>n;
cout<<f(n)<<".00";
return 0;
}代码片
这种方案可以解决问题,但是会超时
代码改进
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[50];
a[0]=1;
a[1]=1;
a[2]=1;
int n;
cin>>n;
int i;
for( i=3;i<=n;i++)
a[i]=a[i-1]+a[i-2];
cout<<a[n]<<".00";
return 0;
}
将之前计算过的数字存储下来,以实现节省运行时间