[蓝桥杯2019初赛]Fibonacci数列与黄金分割
题目描述
输入
输出
样例输入
2
样例输出
0.50000000
怎么说吧,蓝桥杯的题都有一个特别的技巧:从题目中找线索。
这也可以说是一个坑吧。
刚看这个题就感觉一定要用long long int,然后发现其实用了也没用,2000000000项的斐波那契数列根本存不了,然后就只能注意题目中的一点:趋近于黄金分割,然后就会想是不是在第多少项就不动了呢,所以先打出来一个一个的试,就发现从第20项开始就为0.61803399,不动了。
本来还以为是要用高精度这类的东西,只能说想偏了吧。
#include <iostream>
using namespace std;
long long int f[300];
int main()
{
f[1]=1;
f[2]=1;
int n;
for(int i=3;i<=100;i++)
f[i]=f[i-1]+f[i-2];
cin>>n;
if(n<20)
printf("%.8lf\n",1.0*f[n]/f[n+1]);
else
cout<<"0.61803399";
}
来源:CSDN
作者:lcforever7
链接:https://blog.csdn.net/lclovezy/article/details/104579047