题目描述

利用公式 e=1+1/1!+1/2!+1/3!+⋯+1/n!,求 e 的值,要求保留小数点后 10 位。

输入格式

输入只有一行,该行包含一个整数 n,表示计算 ee 时累加到 1/n!。

输出格式

输出只有一行,该行包含计算出来的 e的值,要求打印小数点后 10 位。

输入输出样例

输入 

10

输出 

2.7182818011

说明/提示

2≤n≤15。

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	double s=1,z=1;
	// 开始一个 for 循环,循环变量 i 从 1 开始,每次循环结束后 i 加 1,
	// 直到 i 大于 n 时停止循环,循环次数由用户输入的 n 决定。
	for(int i=1;i<=n;i++)
	{
		s=s*i;    // 计算 i 的阶乘,将 s 乘以当前的 i 值,更新 s 的值
		z+=1.0/s;    // 累加每一项 1/s 的值到 z 中,这里 1.0 是为了确保进行浮点数除法。
	}
	// 输出最终结果 z,使用 fixed 和 setprecision(10) 控制输出格式,
	// 确保结果保留 10 位小数,并换行。
	cout<<fixed<<setprecision(10)<<z<<endl;
	return 0;
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐