连分数
题目描述
输入正整数 n n n,输出
S = 1 + 1 2 + 1 3 + 1 ⋯ + 1 n S=1+\dfrac{1}{2+\dfrac{1}{3+\dfrac{1}{\cdots+\dfrac{1}{n}}}} S=1+2+3+⋯+n1111
的值, 结果保留8位小数.
例如, n = 7 n=7 n=7时
S = 1 + 1 2 + 1 3 + 1 4 + 1 5 + 1 6 + 1 7 S=1+\dfrac{1}{2+\dfrac{1}{3+\dfrac{1}{4+\dfrac{1}{5+\dfrac{1}{6+\dfrac{1}{7}}}}}} S=1+2+3+4+5+6+7111111
输入格式
一个整数 n n n。
输出格式
一个实数, S S S的近似值,保留8位小数。
样例 #1
样例输入 #1
7
样例输出 #1
1.43312742
提示
1 ≤ n ≤ 20 1 \le n \le 20 1≤n≤20。
答案
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
double S = 0.;
cin >> n;
for (int i=1;i<=n;i++){
if (S != 0) S = 1/S;
S += (n-i+1);
}
cout << fixed << setprecision(8) << S;
return 0;
}