c语言编程题,求e的近似值,e=1/1!+1/2!+1/3!+......+1/n!,累加项小于1

c语言编程题,求e的近似值,e=1/1!+1/2!+1/3!+......+1/n!,累加项小于10^-8,保留8位小数。谢谢各位大神了

楼主你好!
首先你的公式我认为是错的!前面第一项漏加了个1
正确的公式为:e=1+1/1!+1/2!+1/3!+......+1/n!
代码实现如下:
#include<stdio.h>
int fun(int n)
{
if(n == 1)return 1;
return n*fun(n-1);
}
int main()
{
double sum =1.0 ;
int i = 1;
while((1.0/fun(i))>=1e-8)
{
sum +=(1.0/fun(i));
i++;
}
printf("%.8lf",sum);
}
运行结果为2.71828183
网上查到的值2.718281828459
由此可知,前8位小数基本一样!
希望我的回答对你有帮助!
望采纳!谢谢!追问

是的。。。我确实漏了个1,谢谢解答

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-24

对着c语言入门写了几行,计算的是1/0!+1/1!+1/2!+1/3!+......+1/n!,

如果要算 1/1!+1/2!+1/3!+......+1/n!,请把代码中的 n1=1.0; 改为 n1=2.0

void main(){

 double e1,n1,n2;

 e1=0.0;

 n1=1.0;

 n2=1.0;

 while(e1+=n2,(n2/=n1++)>1e-8){   

  ;// printf("n=%f \te=%10.8f\n",n1,e1);

 }

 printf("e=%10.8f\n",e1);

}

 结果是 e=2.71828183

c语言编程题,求e的近似值,e=1\/1!+1\/2!+1\/3!+...+1\/n!,累加项小于1
正确的公式为:e=1+1\/1!+1\/2!+1\/3!+...+1\/n!代码实现如下:include<stdio.h> int fun(int n){ if(n == 1)return 1;return n*fun(n-1);} int main(){ double sum =1.0 ;int i = 1;while((1.0\/fun(i))>=1e-8){ sum +=(1.0\/fun(i));i++;} printf("%.8...

C语言编程序,求e的近似值e≈1+1\/2!+1\/3!+…+1\/n!
(1)计算前n项 源程序如下:include<stdio.h> int main(){ double item=1,sum=1;int n,i;scanf("%d",&n);for(i=1;i<=n;i++){ item*=1.0\/i;sum+=item;} printf("The sum is lf\\n",sum);return 0;} (2)计算各项直到最后一项小于10^(-4)源程序如下:include<stdio.h>...

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

C语言 编写程序求e的值 e=1+1\/1!+1\/2!+1\/3!+...
public static void main(String args[]){ double sum=1,n=1;double e=1;for(n=1;n<=10;n++){ sum=sum*n;e+=1\/sum;} System.out.println("e="+e);} } 得到的值为:2.7182818011463845...随着n值越专大得到的e值越精属确。

编写程序,求e的值。e≈1+1\/1!+1\/2!+1\/3!+1\/4!+…+1\/n!用while循环,要求...
include<stdio.h>int fac(int n){if(n==0)return 1; return n*fac(n-1);}int main(){int i; double e,t; for(i=0;fac(i)<=1e6;i++) e+=1.0\/fac(i); printf("%.6lf\\n",e); return 0;}

...要求求e的值,e约等于1+1\/1!+1\/2!+1\/3!+...+1\/N! 要求直至最后一项的...
include<stdio.h> 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=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;} ...

c 语言编程题:求e e=1+1\/1!+1\/2!+1\/3!+...
N取得越大,精度越高!\/***以下为代码***\/ int main(){ float e = 1;int i, j, den, N = 100000;for(i=1,i<N,i++){ den = 1;for(j=i,j>0,j--)den = den * j;e = e + 1\/den;} printf("%6.2f",&e);return 0;} ...

C语言编程: 根据公式e=1+1\/1!+1\/2!+1\/3!+…,求e的近似值,精度要求为...
include<stdio.h> int jc(int x){int i,s=1;for(i=1;i<=x;i++)s*=i;return s;} void main(){int i;double n=0;for(i=1;1.\/jc(i)>1e-6;i++)n+=1.\/jc(i);printf("%lf\\n",n+1);}

c语言求e=1+1\/1!+1\/2!+1\/3!+1\/4!+...
double e = 1.0;\/\/声明变量e并初始化 for (i = 2; i <= n; i++)\/\/声明for循环 { e += 1.0 \/ jiecheng(i);\/\/e加上当前计算结果(即1\/1!,1\/2!等)} printf("%f", e);\/\/输出e return 0;\/\/结束程序 } 大部分代码我都做了注释,希望你能理解这个程序。希望能帮到您。

相似回答