本文主要是介绍1147. 求1/1+1/2+2/3+3/5+5/8+8/13+13/21……的前n项的和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述
求1/1+1/2+2/3+3/5+5/8+8/13+13/21+21/34…的前 n 项的和。
输入
输入一个整数 n(1<=n<=30)。
输出
输出一个小数,即前 n 项之和(保留 3 位小数)。
样例
输入
复制
20
输出
复制
12.660
#include<bits/stdc++.h>
using namespace std;
int fun1(int n){if(n==1||n==2) return 1;else return fun1(n-1)+fun1(n-2);
}
int fun2(int n){if(n==1) return 1;if(n==2) return 2;return fun2(n-1)+fun2(n-2);
}int main(){int x;double sum=0;cin>>x;for (int i=1;i<=x;i++){sum=sum+(fun1(i)*1.0)/(fun2(i)*1.0);}cout<<fixed<<setprecision(3)<<sum<<endl;return 0;
}
//求1/1+1/2+2/3+3/5+5/8+8/13+13/21……的前n项的和
这篇关于1147. 求1/1+1/2+2/3+3/5+5/8+8/13+13/21……的前n项的和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!