帮忙编一个程序 e=1+1/1!+1/2!+1/3!+…+1/n! (精度要求为1/n!<1e-6)

来源:百度知道 编辑:UC知道 时间:2024/05/27 05:08:06
帮忙编一个程序 e=1+1/1!+1/2!+1/3!+…+1/n! (精度要求为1/n!<1e-6)
我是个新手,大家帮忙时,把程序设计的易懂点,谢谢

main()
{
double e = 1,tmp=1;
int n = 1;
do{
tmp /= n;
e+= tmp;
n++;
}while(tmp >=1e-6)

printf("%lf",e);
}

1先用递归编函数n!

int f(int i)

if(i==0) return 1;

else return i*f(i-1);
}

2再根据那个公式编main()函数。

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n=0;//n用来控制分母
float item=1.000000,e=1.000000;//item代表每一项,e代表结果
while(item>=1e-6)
{
n++;
item/=n;
e+=item;
}
cout<<fixed<<setprecision(10)<<"e="<<e<<endl;
return 0;