用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;
}

用c++编写e=1+1\/1!+1\/2!+1\/3!...1\/n!,计算e的值。要求:1用for循环计...
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"...

编写c++源程序计算e=1+1\/1!+1\/2!+1\/3!+...+1\/n!+...计算e的值,直到1\/...
求阶乘的部分可以写在子函数里。阶乘自然用到累乘器 int y=1;之后就是for循环:for(int i=1;i<n+1;i++)y*=i;关于return 的是y 还是1\/y 看你自己的兴致了。这个n可以通过函数参数传进来。求和的部分自然也需要用到累加器:int e=0;然后for(int i=1;true;i++)e=1\/y(i)假设y就是...

C++编程:根据公式e=1+1\/1!+1\/2!+1\/3!…计算e的值,要求使用while循环...
include <iostream.h> \/\/using namespace std; \/\/这句我给注释掉了,否则老报错。int main() { int i=1; float s=1,t=1.0,e=1.0; while (t>=1e-4) { s*=i; t=1\/s; e+=t; i++; } cout<<"e="<<e<<endl; return 0;} 这是运行结果。

...要求求e的值,e约等于1+1\/1!+1\/2!+1\/3!+...+1\/N! 要求直至最后一项的...
void main(){ double b=1,a=1,n,i,j=1;while(a>=1e-7){ n=1;i=1;while(i<=j){ n=n*i;i++;} a=1\/n;b=a+b;j++;} printf("%f\\n",b);} 看不清楚你写的是小于10的几次方,我这是小于10的-7次方

C语言编写,求e的值.e≈1+1\/1!+1\/2!+1\/3!+……+1\/n!
include <stdio.h> define N 50 int main(int argc, char* argv[]){ double e=1,t=1;int t1;for (t1=2;t1<=N;++t1){ t*=(double)1\/t1;e+=t;} printf("%lf",e);return 0;} \/\/--- 2.\/\/--- include

c++编程~~~ 根据公式e=1+1\/(1!)+1\/(2!+1\/(3!)+... 求e的 近似值...
using namespace std;void main(){ float a=0;float t=1;float flag;for(int i=1;;i++){ for(float j=i;j>0;j--){ t=t*j;} t=1\/t;flag=a;a=a+t;if(a-flag<1e-6)break;} cout<<"根据公式e=1+1\/(1!)+1\/(2!+1\/(3!)+... e的近似值为:"<<a<<endl;} ...

C++编程:根据公式e=1+1\/1!+1\/2!+1\/3!+...+1\/n!,求e的近似值,精确到最后...
代码文本:\/\/#include "stdafx.h"\/\/vc++ 6.0? Maybe should add this line.include <iostream> using namespace std;int main(int argc,char *argv[]){ double e,t;int n;for(t=e=n=1;t>=1.0E-5;e+=t\/=n++);cout << "e≈" << e << endl;return 0;} ...

根据公式e=1\/1!+1\/2!+1\/3!……求e的近似值,精度要求为10-6
你写的是使用泰勒公式求e,少一个1。正确的:e=1+1\/1!+1\/2!+1\/3!+...》C++代码(while循环)》》:include<iostream.h> void main(){ double e=1;double jc=1;\/\/求阶乘,并存入jc中 int i=1;while(1\/jc>=1e-6){ e=e+1\/jc;i++;jc=jc*i;} cout<<"e="<<e<<endl;...

在c++中,计算e=1+1\/1!+1\/2!+1\/3!+。。。+1\/n!+。。。,知道1\/n!<=10...
这里是循环条件,也就是说,只有符合 u>1.0e-7 的条件,循环就会继续进行,也就是说,到 u<=1.0e-7的时候,才会终止循环,即停止计算。也就是说,for的循环条件是:符合这个条件才进入循环,不符合条件就不进入循环。所以要把这个跟终止条件不要搞混了。

...e的近似值计算公式为:e=1+1\/1!+1\/2!+……rn<1e-8时停止。
把f中的return 1.0\/result;改为return result;。把主函数中for(int i=1;(1.0\/f(1))>1e-8;i++)中的f(1)改为f(i)。

相似回答