Skip to content

Latest commit

 

History

History
52 lines (39 loc) · 1.53 KB

2709.md

File metadata and controls

52 lines (39 loc) · 1.53 KB

自然常数 2709: 求出e的值

题目要求给定精度n的情况下计算工程常数e,需要进行阶乘运算和累加求和。

题目来源

2709: 求出e的值

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

描述

利用公式e = 1 + 1/1! + 1/2! + 1/3! + ... + 1/n! 求e 。

输入

输入只有一行,该行包含一个整数n(2<=n<=15),表示计算e时累加到1/n!。

输出

输出只有一行,该行包含计算出来的e的值,要求打印小数点后10位。

样例输入

10

样例输出

2.7182818011

由于题目要求的精度n小于等于15,double类型能够满足要求,无需高进度计算,可从小到大计算阶乘,减少一重循环。

#include <iostream>
#include <iomanip>
using namespace std;
int main() {
	int n, i;
	double e = 1, num = 1;
	cin >> n;
	for(i = 1; i <= n; ++i) {
		num *= i;
		e += 1.0 / num;
	}
	cout << setprecision(10) << fixed << e << endl;
	return 0;
}

2709.cpp 代码长度:241B 内存:200kB 时间:11ms 通过率:94% 最小内存:200kB 最短时间:0ms

阶乘和累加可在一重循环中实现,注意循环变量的起始和终止条件,以及累加器和累乘器的起始值,这里 e = 1,另外输出精度需添加头文件以及使用标识符setprecision和fixed。这道题目是之前题目要点的一次综合运用。

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