用c语言编写e=1+1/1!+1/2!+1/3!......1/n!,计算e的值。要求:1用for

用c语言编写e=1+1/1!+1/2!+1/3!......1/n!,计算e的值。要求:1用for循环计算到公式的前50项。详细一点解释,不要复制,谢谢

似乎有些难....因为要算到前50项...需要打高精度(阶乘太大已经爆了long long)我的程序只能算一定范围内的...

#include<cstdio>

using namespace std;

int n;
double ans=0;

int main(){
int i;
long long p=1;
scanf("%d",&n); //输入要到多少项 
for(int i=1;i<=n;i++){
p=p*i; //p表示 i!因为每次都乘上 i,所以每次乘起来最后就是i! 
ans+=(double)1/p; //将算的 1/i!累加起来 
}
printf("%.10lf",ans); //保留10位小数输出 
return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答

用C语言编辑,e=1+1\/1!+1\/2!+1\/3!+...1\/n! 求e的近似值,由键盘输入N的...
int fun(int n){ int sum =1;for(int i =1;i<=n;i++)sum *= i;return sum;} void main(){ int i,n;float e = 0;scanf("%d",&n);for(i = 0;i<=n;i++){ e += 1.0\/fun(i);} printf("%7.6f",e);} ...

C语言:按泰勒级数公式e = 1 + 1\/1! + 1\/2! +1\/3! + ... + 1\/n!求e...
} printf("e的值为:%.6f\\n",sum); return 0;}int jiecheng(int N){ if(N==0 || N==1) return 1; else return N*jiecheng(N-1);}运行结果如下:

编写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的值.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!+...+1\/n!
(1)for循环:include "stdio.h"void main(){ int i;long s=1;double e=1.0;for(i=1;i<=50;i++){ s*=i;e+=1.0\/s;} printf("%lf",e);} (2)while循环:include "stdio.h"void main(){ int i=1;long s=1;double e=1.0;while(1.0\/s>=1e-4){ s*=i++;e+=1....

编写程序:用for循环求e的值,e=1+1\/1!+1\/2!+1\/3!+…+1\/n!(计算前50项...
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;} 昨天的有点小错误 ...

...求自然对数e的近似值 e=1+1\/1!+1\/2!+1\/3!+...
\/\/C语言中,求e=1\/1!+1\/2!+…+1\/n!精确到10ˉ8#include <stdio.h>int main(void){ long n = 0, ns = 1; double x = 0.0f, y=0.0f, e = 1.0f; for(;;) { n++; \/*计算n*\/ ns *= n; \/*计算n!*\/ x = ns; y = 1.0f \/ x; \/*计算1\/n!*\/ ...

c语言求e=1+1\/1!+1\/2!+1\/3!+1\/4!+...
问题没说清楚是怎么求,所以这里我决定求第n项的e(n通过控制台输入获取,例如n=3,则e=1+1\/1!+1\/2!。)。这是我的代码:include <stdio.h> int jiecheng(int n)\/\/阶乘函数(利用递归方式计算){ if (n == 1)\/\/递归结束条件,如果n等于1 { return 1;\/\/返回终值 } return n * ...

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%n!(精度为10的—6次方)按下列公式求...
LZ 你题目错了吧,应该是 1+1\/1!+1\/2!+1\/3!+……1\/n!:程序如下:include "stdio.h"main(){ double e=0;int n,i,t=1;for(n=1;;n++){ for(i=1;i<=n;i++)t=t*i;e=e+1.0\/t;if(1.0\/t<=1e-6)break;} printf("%f\\n",e);} 输出结果:1.586835 ...

相似回答