Skip to content

Latest commit

 

History

History
55 lines (41 loc) · 1.49 KB

2683.md

File metadata and controls

55 lines (41 loc) · 1.49 KB

序列求和 2683: 求分数序列和

题目要求计算给定分数序列的前n项和。

题目来源

2683: 求分数序列和

总时间限制: 1000ms 内存限制: 65536kB

描述

有一个分数序列 2/1,3/2,5/3,8/5,13/8,21/13,.... 求这个分数序列的前n项之和。

输入

输入有一行:正整数n。

输出

输出有一行:分数序列的和(浮点数,精确到小数点后4位)。

可以printf("%.4lf\n", a)输出浮点数并精确到小数点后4位。

样例输入

99

样例输出

160.4849

首先要掌握给定序列的规律,分子分母实际上都是斐波那契数列,这样可以通过循环来实现,主要注意n对应的项数。

#include <iostream>
#include <iomanip>
using namespace std;
int main() {
	int n, i;
	double sum = 0, p = 2, q = 1;
	cin >> n;
	for(i = 0; i < n; ++i) {
		sum += p / q;
		p += q;
		q = p - q;
	}
	cout << setprecision(4) << fixed << sum << endl;
	return 0;
}

2683.cpp 代码长度:257B 内存:144kB 时间:2ms 通过率:94% 最小内存:144kB 最短时间:0ms

注意精度要求,要采用double型存储,用两个变量分别存储分子分母,每次循环更新。最后添加头文件,按精度要求输出,题目提示是C语言的函数,我们这里采用C++的标准输入输出流。

有任何的改进意见欢迎大家在微信平台公众号主页面留言或者发表issue。