用c++编写e=1+1/1!+1/2!+1/3!......1/n!,计算e的值。要求:1用for循环计算到公式的前50项。2用while循环

直到公式最后一项的值小于10的-4为止。要c++

第1个回答  推荐于2016-07-26
#include<iostream>
double fact(int n) //求阶乘。
{
int i;
double re;
re =1;
for(i=1;i<=n;i++)
{
re *=i;
}
return re;
}
int main()
{
double e=0.0;
int i;
e=1.0;
double temp;
for(i=1;i<50;i++) //for的循环。
{
temp=1.0/fact(i);
e +=temp;
}
//printf("e=%lf\n",e);
cout<<"e="<<e<<endl;
e=0.0;
temp=1;
i=1;
while(temp>=1E-4) //while的循环。
{
e +=temp;
temp=1.0/fact(i);
i++;
}
//printf("e=%lf\n",e);
cout<<"e="<<e<<endl;
getchar();
return 0;
}本回答被提问者和网友采纳
第2个回答  2011-07-06
#include<stdio.h>
double fun(int n);
void main()
{ printf("e=1/1!+1/2!+…+1/50!=%lf\n",fun(50));
}

double fun(int n)
{ double e=0,t=1;
int i=1;
for(i;i<=n;i++)
{ t=t*i;
e=e+1.0/t;
}
return e+1;
}

昨天的有点小错误
另外,团IDC网上有许多产品团购,便宜有口碑
第3个回答  2011-06-30
#include<iostream>
using namespace std;
int main()
{
float i,j,k=1,e=1;
for(i=1;;i++)
{
k*=i;
if(1/k<0.0001)
break;
e+=1/k;

}
cout<<"e="<<e<<endl;

}
第4个回答  2011-07-13
1.
#include<iostream>
using namespace std;
void main()
{
double e=1;
int i;
for(i=1;i<=50;i++)
e+=1.0/i;
cout<<e<<endl;
}
2.
#include<iostream>
using namespace std;
void main()
{
double e=1;
int i=1;
while(1<=50)
{
e+=1.0/i;
i++;
}
cout<<e<<endl;
}
相似回答