信息学奥赛c++语言:求出 e 的值
利用公式 e=1+1/1!,求 e 的值,要求保留小数点后 10 位。输入只有一行,该行包含一个整数 n,表示计算 ee 时累加到 1/n!输出只有一行,该行包含计算出来的 e的值,要求打印小数点后 10 位。
·
题目描述
利用公式 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;
}
更多推荐
所有评论(0)