浏览器标题切换
浏览器标题切换end

[蓝桥杯2019初赛] - Fibonacci数列与黄金分割 - 找规律

题意:中文题,自行理解。

题目链接:http://oj.ecustacm.cn/problem.php?id=1478

之后查了发现:
相邻两个斐波那契数的比值是随着序号的增加逐渐趋于黄金分割比。即f(n)/f(n+1)-→0.618…。
原来这是一个规律,我之前复习斐波那契怎么没复习到!!!

PS:这题我没有思路,查了发现就是个裸的直接输出看结果题目,可是我做的时候是真的不知道从何入手。

输出一部分看看:

printf("%d %.8lf\n",x++,f[i-1]*1.0/f[i]);
// 有个小技巧,做题可以用:不用再去开一个for循环去输出f[i]/f[i+1],而是直接在第一个循环中对式子进行变形写成f[i-1]*1.0/f[i]即可,还需要注意x从几开始,可以和样例对照着看。

2 0.50000000
3 0.66666667
4 0.60000000
5 0.62500000
6 0.61538462
7 0.61904762
8 0.61764706
9 0.61818182
10 0.61797753
11 0.61805556
12 0.61802575
13 0.61803714
14 0.61803279
15 0.61803445
16 0.61803381
17 0.61803406
18 0.61803396
19 0.61803400
20 0.61803399
21 0.61803399
22 0.61803399
23 0.61803399
24 0.61803399
25 0.61803399
26 0.61803399
27 0.61803399
28 0.61803399
29 0.61803399
30 0.61803399
31 0.61803399
32 0.61803399
33 0.61803399
34 0.61803399
35 0.61803399
36 0.61803399
37 0.61803399
38 0.61803399
39 0.61803399
40 0.61803399
41 0.61803399
42 0.61803399
43 0.61803399
44 0.61803399
45 0.61803399
46 0.61803399
47 0.61803399
48 0.61803399
49 0.61803399

AC代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

ll f[25];

int main()
{
    int n;
    cin>>n;
    f[1]=1,f[2]=1;
    int x=2;
    for(int i=3; i<=25; i++)
    {
        f[i]=f[i-1]+f[i-2];
        //printf("%d %.8lf\n",x++,f[i-1]*1.0/f[i]);
    }
    if(n>=20)
        cout<<"0.61803399"<<endl;
    else
        printf("%.8lf\n",f[n]*1.0/f[n+1]);
    return 0;
}

注意

因为我只试了一组数据就是样例,导致代码一直不对,后来测一下数据发现是cout的问题,以前从来没有注意过这个问题,以为cout就是直接输出没有任何格式。
于是,我今天找bug找了好久。
这里说明一下,
C++默认流的输出有效位是6位。
所以我直接输出cout<<0.61803399<<endl这样子,是得不到正确答案的,只会输出0.618034。

cout格式化输出小数点后位数

#include <iomanip>  头文件
std::cout<<std::fixed<<std::setprecision(8)<<1.23456789123456<< std::endl;  控制输出位数8位的格式,这个之前用过,不好记,还是printf控制。

出错代码部分

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

int main()
{
    cout<<"0.61803399"<<endl; // 0.61803399
    cout<<0.61803399<<endl; // 0.618034
    return 0;
}
posted @   抓水母的派大星  阅读(471)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示