Fibonacci 数列与黄金分割【暴力】
题目描述
Fibonacci 数列是非常著名的数列:
F[1] = 1F[1]=1,
F[2] = 1F[2]=1,
对于 i*>3,F[i]=F[i−1]+F[i−2]。
Fibonacci 数列有一个特殊的性质,前一项与后一项的比值,F[N]/F[N+1], 会趋近于黄金分割。
为了验证这一性质,给定正整数 N,请你计算 F[N]/F[N+1],并保留 8 位小数。
输入描述
输入一个正整数 N (1≤N≤2×109)。
输出描述
输出 F[N]/F[N+1]。答案保留 8 位小数。
输入输出样例
示例
输入
2
输出
0.50000000
思路:
这题难度不大,最主要的是,当输入的 N 超过20是时候 F[N]/F[N + 1]恒等于 0.61803399在输入一个数时,要先判断是不是超过20,如果超过,则直接输出0.61803399,否则正常计算
代码:
#include<stdio.h>
int main()
{
int n;
double f[100];
scanf("%d",&n);
if(n>20)
{
printf("0.61803399");
return 0;
}
f[1]=1;
f[2]=1;
for(int i=3;i<=n+1;i++)
f[i]=f[i-1]+f[i-2];
printf("%.8lf",f[n]/f[n+1]);
return 0;
}