Fibonacci 数列与黄金分割

  1. 题目描述
    Fibonacci 数列是非常著名的数列:
    F[1]=1,F[2]=1
    对于 i>3,F[i]=F[i−1]+F[i−2]。
    Fibnacci 数列有一个特殊的性质,前一项与后一项的比值,F[N]/F[N+1], 会趋近于黄金分割。
    为了验证这一性质,给定正整数 N,请你计算 F[N]/F[N+1],并保留 8 位小数。
    输入描述
    输入一个正整数 N (1≤N≤2×10^9)。
    输出描述
    输出 F[N]/F[N+1]。答案保留 8 位小数。

3。代码实现:

点击查看代码
#include <iostream>
using namespace std;
int f(int n)
{
  if(n==1||n==2){
    return 1;
  }
  else{
    return f(n-1)+f(n-2);   // 递归公式,第n项会是它前两项的和
  }
}
int main()
{
  int n;
  cin>>n;
  if(n>20){
    cout<<"0.61803399";     //大于20时,黄金分割数基本不变
  }
  else{
    double ans =1.0*f(n)/f(n+1);
    printf("%.8lf",ans);        //保留小数点后8位
  }
  // 请在此输入您的代码
  return 0;
}
posted @ 2022-03-03 23:56  自然力  阅读(113)  评论(0)    收藏  举报