POJ NOI0105-35 求出e的值
- 问题链接:POJ NOI0105-35 求出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
- 提示
- 1、e以及n!用double表示
2、要输出浮点数、双精度数小数点后10位数字,可以用下面这种形式:
printf("%.10f", num); - 来源
- 2005~2006医学部计算概论期末考试
问题分析
一个简单的迭代计算,要注意的是程序要尽量简洁,计算少。
程序说明
输出格式是个要点,用C语言的输出格式通常要简单一些,C++也有自己的一套,估计能记住的人少之又少。
参考链接:(略)
AC的C++语言程序:
#include <iostream> #include <iomanip> using namespace std; int main() { int n; double e, fact; cin >> n; e = 1.0; fact = 1.0; for(int i=1; i<=n; i++) { fact /= i; e += fact; } cout << fixed << setprecision(10) << e << endl; return 0; }