e,是一个无理数,是一个数学常数(类似于π),是自然对数函数的底数。有时称它为欧拉数(Euler number),其计算公式如下:
请小盆友们编写一个程序,从键盘读取k(k越大越精确),计算e的近似值(保留10位小数)
(e ≈ 2.71828 18284 59045 23536 02874 71352 66249 77572 47093 69995 95749 66967 62772 40766 30353 54759 45713 82178 52516 64274。)
输入格式:
大于5的正整数k(k<13,即int能保存k!)。
输出格式:
e的近似值(保留10位小数)
由于要求保留的位数比较多,请定义变量e时用double。
输入样例:
6
输出样例:
2.7180555556
代码如下:
#include <stdio.h>
int jiecheng(int x)//定义函数计算阶乘
{
int z = 1, y = 1;
while (z <= x)
{
y *= z;
z++;
}
return y;
}
int main()
{
int k, i;
double e = 0, sum = 0, a, b;
scanf("%d", &k);
for (i = 1; i <= k; i++)
{
a = jiecheng(i);
b = 1 / a;
e += b;
}
sum = 1 + e;//0!=1,所以最后要加上1
printf("%.10f", sum);
return 0;
}
PTA提交结果: