[蓝桥杯][2019年第十届真题]Fibonacci 数列与黄金分割

题目描述

Fibonacci 数列是非常著名的数列:

F[1] = 1,

F[2] = 1,

对于 i > 3,F[i] = F[i − 1] + F[i − 2]

Fibonacci 数列有一个特殊的性质,前一项与后一项的比值,F[i]/F[i + 1], 会趋近于黄金分割。

为了验证这一性质,给定正整数 N,请你计算 F[N]/F[N + 1],并保留 8 位 小数。

输入

一个正整数 N。(1 ≤ N ≤ 2000000000)

输出

F[N]/F[N + 1]。答案保留 8 位小数。

样例

样例输入

2

样例输出

0.50000000
思路:

打表出奇迹。

代码:
const int N = 55;

ll f[N];

int main() {

    f[1] = f[2] = 1;
    for (int i = 3; i < N; i ++) {
        f[i] = f[i - 1] + f[i - 2];
    }

    ll n; cin >> n;
    if (n >= 50) puts("0.61803399");
    else printf("%.8lf\n", f[n] * 1.0 / f[n + 1]);


    return 0;
}
posted @ 2021-01-25 18:13  nonameless  阅读(122)  评论(0编辑  收藏  举报