Problem Description
数学常量 e 的值可以用一个无穷级数表示: e = 1 + 1/1! + 1/2! + 1/3! + ...
当n很大时,通项 1/n!会很小,因此,在计算中可以认为通项1/n! 小于等于给定的精度以后的项可以忽略。
编写程序计算 e 的近似值。
Input Description
在一行中输入一个小数,表示 e 的通项精度。
Output Description
在一行中输出 e 的近似值(保留10位小数)。
Sample Input
0.001
Sample Output
2.7182539683
代码:
#include <stdio.h>
int main()
{
double e = 1.0, m, n = 1.0;
int k = 1;
scanf("%lf", &m);
do
{
n = n / k;
e = e + n;
k++;
}while(m < n);
printf("%.10f\n", e);
return 0;
}
答案:
#include <stdio.h>
int main()
{
double e = 1.0, c = 1.0, x;
int k;
scanf("%lf", &x);
for(k = 1; c > x; k++)
{
c = c / k;
e = e + c;
}
printf("%.10f", e);
return 0;
}