编写程序求自然对数e的近似值

编写程序求自然对数e的近似值,第1张

要求:误差小于000001

Private Sub Command1_Click()

Dim i%, n&, t!, e!

e = 2

i = 1

t = 1

Do While t > 000001

i = i + 1

t = t / i

e = e + t

Loop

Print "计算了"; i; "项目和是:"; e

Print Exp(1) ‘与上句输出值进行对比以证明算法的正确性

End Sub

这种算法是有问题的,不能达到指定的精度的!t <= 000001 时结束了循环,这个只是到这一项为止,该项的值比精度小,但是不能保证被舍掉的后面部分(无穷项之和)阶乘的倒数之和比指定的精度小!

#include<stdioh>

int main( )

{

int i,j;

long long fact;

long double sum=10;

for (i=1;i<=50;i++)

{

fact = 1;

for(j=1;j<=i;j++)

{

fact =j;

}

sum = sum + ( (long double)1/(long double)fact);

printf("sum=%019Lf\n",sum);

}

printf(" e =%19Lf\n",sum);

// printf("%ld",sizeof(long double));

}

while:::

{

int i=1, j;

long long fact = 1;

long double sum=10 ;

while((float)1/(float)fact>=00001)

{

fact = 10;

j=1;

while( j<=i)

{

fact =j;

j++;

}

i++;

sum +=((long double)1/(long double)fact);

printf("sum=%019Lf\n",sum);

}

printf("sum=%19Lf\n",sum);

}

#include <stdioh>

double fun(int n){

if (n<=1) return 1;

return 10nfun(n-1);

}

int main(){

double e;

int i;

//方法1 

e=1;

for(i=1;i<50;i++)

e=e+1/fun(i);

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

//方法2 

e=1;i=1;

while(1/fun(i)>000001)

e+=1/fun(i++);

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

}

#include<stdioh>

int main()

{float i,e=10,t=10;

for(i=1;t>=10e-6;i+=1)

{t/=i;

e+=t;

}

printf("e=%f\n",e);

getch();

return 0;

}

以上就是关于编写程序求自然对数e的近似值全部的内容,包括:编写程序求自然对数e的近似值、1.编写程序,根据以下公式求e的值。要求用两种方法进行计算:(1)用for循环,计算前50项。(2)用while循、编写程序,求 e的值。e≈1+1/1!+1/2!+1/3!+…..+1/n! (1) 用for等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10625482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存