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

文章目录

    • 题目描述
    • 输入
    • 输出
    • 样例输入
    • 样例输出
    • c语言AC代码

题目描述

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

c语言AC代码

#include
double fibo(long long n)
{
    if(n < 1) 
		return -1;
    long long F[n + 1];
    F[1] = 1;
    F[2] = 1;
    for (int i = 3; i <= n; ++i) 
	F[i] = F[i - 1] + F[i - 2];
    return F[n];
}
int main()
{
    long long num;
    scanf("%lld",&num);
    if (num < 20) 
		printf("%.8lf", (fibo(num) / fibo(num + 1)) );
    else printf("0.61803399" );	//20以后结果相同 
    return 0;
}

你可能感兴趣的:(习题,c语言)