求C语言编程,e=1+1/1!+1/2!+1/3!+...+1/n!,精确度1e-6

如题所述

#include<iostream>
using namespace std;
int main()
{
int i=1;
double e=1.0,d=1.0;
while(d>=1e-6)
{
d=d/i;
e+=d;
i++;
}
cout<<"e的值为:"<<e<<endl;
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-27
首先每项是前一项*1/n
也就是说求完前一项后直接*1/n就可以求出下一项
根本不需要再求什么阶乘,那样麻烦,又费时又费空间的
程序如下:
double fun()
{ double e=1.0,t;
int i;
for(i=1,t=1;t>1e-6;++i)
{ t*=1.0/i;
e+=t;
}
return e;
}
用VC++6.0试过了,对的,结果是2.718282
希望对你有帮助本回答被网友采纳
第2个回答  2011-05-04
我这语句最简单,你肯定看的懂
都可以运行
第一题:
#include<stdio.h>
void main()
{
int i,j;
for(i=1;i<=7;i++)
{
for(j=i;j<=7;j++)
printf("%d",j);
for(j=1;j<i;j++)
printf("%d",j);
printf("\n");
}
}
或者用楼上的

#include<stdio.h>
void main()
{
int i,j;

for(i=1;i<=7;i++)
{
for(j=i;j<=i+6;j++)
if(j<=7)
printf("%d",j);
else
printf("%d",j-7);
printf("\n");
}
}

第二题:
采用楼上,不过有几处修改
#include<stdio.h>
void main()
{
double term=1,e=1; //已经是浮点型,赋值与1就可以,不用1.0
int i=1;//i 只需设i为整型就可以了
while(term>1e-10)//term始终为正数,不用加绝对值
{
term=term/i++;
e=e+term;
}
printf("%f\n",e);
}
第三题:

#include<stdio.h>
main()
{
int sum, t, i, j;
sum=0;
t=0;
for(i=1;i<=100;i++)
{
for(j=1;j<=i;j++)
t=t+j;
sum=sum+t;
}
printf("%d",sum);
}
另外,站长团上有产品团购,便宜有保证
第3个回答  2011-04-28
希望对LZ有帮助,谢谢!-.-
#include <stdio.h>

int fun(int n)
{
if(n==1) return 1;
else return n*fun(n-1);
}

void main()
{
int n,i;
double e=1;
printf("请输入n的大小:\n");
scanf("%d",&n);
printf("\n\n");

for(i=1;i<=n;i++)
{
e+=double(1.0/fun(i));
}
printf("e=%9.6lf\n",e);
}
第4个回答  2011-04-28
#include <stdio.h>

int fun(int n)
{
if(n>1)
return n*fun(n-1);
else
return 1;
}
main()
{
int n=1;
float e=1.0, s=1;
while(s>1e-6)
{
s = 1.0/fun(n++);
e += s;
}
printf("%f\n", e);
}

求C语言编程,e=1+1\/1!+1\/2!+1\/3!+...+1\/n!,精确度1e-6
int i=1;double e=1.0,d=1.0;while(d>=1e-6){ d=d\/i;e+=d;i++;} cout<<"e的值为:"<<e<<endl;return 0;}

用C语言编写程序计算:e=1+1\/1!+2\/2!+1\/3!+···
include "stdio.h"int main(int argv,char *argc[]){int n;double s,t;for(t=s=n=1;t>=1.0E-6;s+=t\/=n++);printf("e≈%f\\n",s);return 0; }运行结果:

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=1+1\/1!+1\/2!+```+1\/n!计算e的值最后一项小于10的负6次...
\/\/e=1+1\/1!+1\/2!+...+1\/n!int main(){ int i = 1;double e=1.0, f = 1.0;while(f>1e-6) { f = f\/i;e += f;i++;} printf("%f",e);return 0;} \/\/答案:2.718282

C语言 编写程序求e的值 e=1+1\/1!+1\/2!+1\/3!+...
;getchar();return 0;} 或:public class Test{ 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值越精属确。

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;\/\/结束程序 } 大部分代码我都做了注释,希望你能理解这个程序。希望能帮到您。

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的值.e≈1+1\/1!+1\/2!+1\/3!+……+1\/n!
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 <stdio.h> const double eps=1

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

相似回答