c语言 求e的近似值e=1+1/1!+1/2!+1/3!+……当最后一项小于10的6次方。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 求e的近似值e=1+1/1!+1/2!+1/3!+……当最后一项小于10的6次方。相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
int main() 
float p=1,a=1,e=1;
while(1/a>=1e-6)
a*=p;
e+=1/a;
p++;
printf("e=%f\\n",e);
return 0;

参考技术A

代码如下

#include<stdio.h>
#include<math.h>
int main()
double e;
double item = 1;
int t = 1;
double sum = 0;

while(fabs(item)>=1e-6)
sum+=item;
t++;
item/=t;


e = sum +1;
printf("e = %lf\\n", e);

输出

e = 2.718282

参考技术B #include <stdio.h>
int main()

int n;
scanf("%d", &n);
int i;
int x;
double sum = 1.0;
int pro;

for(i = 1; i <= n; i++)
for(x = 1, pro = 1; x <= i; x++)
pro *= x;

sum += 1.0/pro;

printf("%f", sum);

return 0;
参考技术C #include "stdio.h"
int main(int argc,char *argv[])
int i,n;
double e,t;
printf("Input n(int 0<=n<=1000)...\nn=");
if(scanf("%d",&n)!=1 || n<0 || n>1000)
printf("Input error, exit...\n");
return 0;

for(e=t=1.0,i=1;i<=n;e+=t/=i++);
printf("e≈%.8f\n",e);
return 0;

-5 求e的近似值 (15分)

 

自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。

输入格式:

输入第一行中给出非负整数 n(≤1000)。

输出格式:

在一行中输出部分和的值,保留小数点后八位。

输入样例:

10

输出样例:

2.71828180

【Python参考代码】

①定义阶乘函数

#By yangbo 2020.07.14
def fun(n):#定义阶乘函数
    s=1
    for i in range(1,n+1):
        s*=i
    return s
N,E=int(input()),1
for i in range(1,N+1):
    E+=1/fun(i)
print("%.8f"%E)

 

②由于测试点3耗时长达188ms,于是有了改进版:

#By yangbo 2020.07.14
N,E,S=int(input()),1,1
for i in range(1,N+1):
    S*=i
    E+=1/S
print("%.8f"%E)

以上是关于c语言 求e的近似值e=1+1/1!+1/2!+1/3!+……当最后一项小于10的6次方。的主要内容,如果未能解决你的问题,请参考以下文章

c语言程序 用泰勒级数求e的近似值,直到最后一项小于le-6为止。 e=1+1/1!+...+1/n!

c语言编程题 计算圆周率的近似值,计算公式为:e=1+1/1!+1/2!+1/3!+1/4!+1/

求C语言高手解答 求e的近似值,直到某一项的值小于或等于10-7为止。 将下列程序补充完整。

编写程序用下面公式求π的近似值 π/4 ≈ 1- 1/3+1/5-1/7+…… 直到最后一项的绝对值小于10-7 为止

C语言中用泰勒级数求e的近似值,直到最后一项小于 10的负6次方为止

浙大版《C语言程序设计(第3版)》题目集 练习4-7 求e的近似值 (15 分)