递推关系式
令An = Fn/Fn+1
An = Fn/Fn+1 = Fn/(Fn+Fn-1)
两边取倒数得
1/An = (Fn+Fn-1) / Fn = 1 + Fn-1/Fn = 1+An-1
所以 An = 1/(1+An-1)
另外,由题意可知n越大,值越趋近于黄金分割比,再看答案只要求精度到8位,
我们特判一下当前值和上一个值相差小于1e-9则直接break
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
double res=1, last=1;
for(int i=2; i<=n; i++)
{
last = res;
res = 1/(1+res);
if(abs(res-last) < 1e-9) break;
}
printf("%.8lf", res);
return 0;
}