题目背景
(本道题目木有隐藏歌曲……不用猜了……)
《爱与愁的故事第一弹·heartache》最终章。
吃完 pizza,月落乌啼知道超出自己的预算了。为了不在爱与愁大神面前献丑,只好还是硬着头皮去算钱……
题目描述
算完钱后,月落乌啼想着:“你 TMD 坑我,(以下用闽南语读)归粒靠杯靠亩诶,(以下用英读)是伊特游!”于是当爱与愁大神问多少钱时,月落乌啼说了一堆乱码。爱与愁大神说:“算了算了,我只问第n样菜价格多少?”月落乌啼写出了:
由于爱与愁大神学过编程,于是就用1分钟的时间求出了 Fn 的结果。月落乌啼为此大吃一惊。你能学学爱与愁大神求出 Fn 的值吗?
输入格式
一行一个自然数 n。
输出格式
只有1行一个实数 Fn,保留两位小数。
输入输出样例
输入 #1
6
输出 #1
8.00
说明/提示
对于所有数据:0 ≤n≤48。
上代码!!!
#include<bits/stdc++.h>
using namespace std;
double f[51];
int main()
{
int n;
cin>>n;
f[0]=0.00;
f[1]=1.00;
f[2]=1.00;
for(int i=3;i<=n;i++)
{
f[i]=f[i-1]+f[i-2];
}
printf("%.2lf",f[n]);
return 0;
}
解析:
一看题目就知道是典型的斐波那契数列问题。
斐波那契数列是这样一串数:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
递推式为f[0]=0,f[1]=1,f[2]=1...f[n]=f[n-1]+f[n-2]。
所以说根据递推式写代码就行了!!
由于题目要保留两位小数,所以开了double型数组,以便输入输出。