求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=1+1\/1!+1\/2!+1\/3!+1\/4!+...
{ int n, i;\/\/n为第几项,i为for循环的控制变量 scanf("%d", &n);\/\/输入n 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...

...e = 1 + 1\/1! + 1\/2! + 1\/3! + …….+ 1\/n! 计算e的值,直到最后一项...
float fas(int n);int main(void){ double sum=0.0,t;int i;i=1;t=1.0;while(t>(1e-6)){ sum=sum+t;t=1\/fas(i);i++;} printf("e=%lf",sum);} float fas(int n){ float y;if(n<0)printf("data error");else { if(n==0||n==1)y=1;else y=fas(n-1)*n;...

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的值 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!+...的公式求e的近似值,直到最后一项的绝对...
include <stdio.h> int main(){ double e,t;int i;for(e=1,i=1,t=1;t>=1e-6;++i)e+=t\/=i;printf("%lf\\n",e);return 0;}

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\/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...

编写程序计算e的值,e=1+1\/1!+1\/2!+1\/3!+1\/4!···
e = 0;\/*初始化e for(i = 0; i<=n;i++){ e = e + 1\/fac(n);\/* 计算值e = 1\/0!+1\/1!+1\/2!+...+1\/n!} Printf("e = %d",e);\/*将结果e输出至屏幕 } long fac(n)\/*计算n的阶乘 { return n?n*fac(n-1):1\/*如n为0或1则返回值为1,若不为0,1则返回n...

相似回答