信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1078:求分数序列和

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

【题目描述】

有一个分数序列q1p1,q2p2,q3p3,q4p4,q5p5,…,其中qi+1=qi+pipi+1=qi,p1=1,q1=2。
比如这个序列前6项分别是21,32,53,85,138,2113。
求这个分数序列的前n项之和。

【输入】

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

【输出】

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

【输入样例】

2

【输出样例】

3.5000

【来源】

NO

代码

#include <stdio.h>
int main ()
{
	int n,p,q,i;
	p=1;q=2;
	double sum=0.0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		sum+=1.0*q/p;
		int tmp=q;
		q=q+p;
		p=tmp;
	}
	printf("%.4lf",sum);
	return 0;
}
原文地址:https://www.cnblogs.com/AlexKing007/p/12338874.html