信息学奥赛一本通(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;
}
原文地址:https://www.cnblogs.com/AlexKing007/p/12338808.html