编写c++源程序计算e=1+1/1!+1/2!+1/3!+....+1/n!+.....计算e的值,直到1/n!<10的-7次方。for循环

1、for循环;2、子函数;3、用printf

最好的方法是用递归
其次是用while(因为是条件循环1/n!<10的-7次方)
结果你非得用for循环,很麻烦的~
如果是我也把for循环的条件部分直接写true的死循环,然后根据条件break.

写代码太麻烦了 思路如下:
整个题目分为两个部分,一部分是求阶乘,一部分是求和。
求阶乘的部分可以写在子函数里。
阶乘自然用到累乘器 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就是封装的子函数
然后再循环体中加入判断条件break一下跳出循环即可;
最后用printf打印出来就可以了。
这题本来就用面向过程的方法就能解决,而且还要求用printf打印出来,完全没必要用c++
用c语言就可以了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-08
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
int i,j,n;
cin >> n;
double t=1.0,e=1;
for(i=n;i>0;i--)
{
for(j=1;j<=i;j++)
t=t/j;
e+=t;
t=1.0;
}
cout << fixed << setprecision(15) << e << endl;
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的值。要求:1用for循环计...
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;} ...

...e=1+1\/1!+1\/2!+1\/3!+…,求e的近似值,精度要求为10^(-
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!+...
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 = 1 + 1\/1! + 1\/2! +1\/3! + ... + 1\/n!求e的值。
a[i]=jiecheng(i); sum += (float)1\/a[i]; } printf("e的值为:%.6f\\n",sum); return 0;}int jiecheng(int N){ if(N==0 || N==1) return 1; else return N*jiecheng(N-1);}运行结果如下:...

编写程序:计算数学常数e的值,e=1+1\/1!+1\/2!+1\/3!+……。
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值越精确。

...n , 求 e 的值.e=1+1\/1!+1\/2!+1\/3!+..+1\/n! 看看我错哪里了!谢谢...
{ int sum=1;int i;if(n==0)return 1;else { for(i=1;i<=n;i++)sum*=i;return sum;} } int main(){ int i=1,j=1,n;double e,t=0;scanf("%d",&n);e=1.0;for(i=1;i<=n;i++){ t+=1.0\/fact(i);} e=e+t;printf("e=%16.10f\\n",e);return 0;} 结果...

编写程序计算e的值,e=1+1\/1!+1\/2!+1\/3!+1\/4!···
scandf("%d",%n);\/*请输入需求值e的阶乘 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\/*如...

用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; }运行结果:

使用嵌套循环:e = 1+1\/1!+1\/2!+...+1\/n!
4、输入一个正整数并将其保存在变量k中。5、使用while语句执行循环,并确定条件为judge。6、用if语句确定。如果sum>k,则将变量judge的值更改为0。7、最后,输出公式值。8、运行程序。当输入正整数时,当公式s=1+1\/2+1\/3+…+1\/n大于正整数k时,计算机将计算n的值。

相似回答
大家正在搜