1078:求分数序列和


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 46387     通过数: 32324

【题目描述】

有一个分数序列 q1p1,q2p2,q3p3,q4p4,q5p5,....�1�1,�2�2,�3�3,�4�4,�5�5,.... ,其中qi+1=qi+pi��+1=��+��, pi+1=qi,p1=1,q1=2��+1=��,�1=1,�1=2。比如这个序列前66项分别是21,32,53,85,138,211321,32,53,85,138,2113。求这个分数序列的前n�项之和。

【输入】

输入有一行,包含一个正整数n(n≤30)�(�≤30)。

【输出】

输出有一行,包含一个浮点数,表示分数序列前n�项的和,精确到小数点后44位。

【输入样例】

2

【输出样例】

3.5000
#include <iostream>
#include <iomanip>
using namespace std;
double a[100],b[100];
int main(){
	int n;
	a[0]=1;a[1]=1;
	b[1]=1;b[0]=0;
	double sum=0;
	cin>>n;
	for(int i=2;i<=n+1;i++ ){
		a[i]=a[i-1]+a[i-2];
	}
	for(int j=2;j<=n+1;j++ ){
		b[j]=b[j-1]+b[j-2];
	}
	
	for(int k=2;k<=n+1;k++){
		sum+=a[k]/b[k];
	}
	cout<<fixed<<setprecision(4)<<sum;
	return 0;
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐