信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1092:求出e的值
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 10468 通过数: 5408
【题目描述】
利用公式e=1+11!+12!+13!+…+1n!,求e的值,要求保留小数点后10位。
【输入】
输入只有一行,该行包含一个整数n(2≤n≤15),表示计算e时累加到1n!。
【输出】
输出只有一行,该行包含计算出来的e的值,要求打印小数点后10位。
【输入样例】
10
【输出样例】
2.7182818011
【来源】
NO
代码
#include <stdio.h>
long int jiecheng(int a)
{
if(a==1)
{
return 1;
}
else
return a*(jiecheng(a-1));
}
int main ()
{
int n;
double sum=0.0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
sum+=1.0/jiecheng(i);
}
printf("%.10lf",sum+1);
return 0;
}