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 为止