用Java语言编程,计算数学常数e的值,e=1+11!+12!+13!+.....。

用Java语言编程,计算数学常数e的值,e=1+11!+12!+13!+.....。,第1张

package e

public class Main {public static void main(String[] args) {

double e=1,sum=1//e的初值为1,sum用来存放n!

int i=1

while(sum<Math.pow(10, 1000000)){ //当sum大于10的1000000次方的时候我们认为已近似的

sum=i*sum相等了,如果这个数设置的更大就会更加接近e

e=1.0/sum+e

i++

}

System.out.println("e="+e)

}} 程序是经验证的,可以在编译环境上运行!绝对没问题~

要求:误差小于0.00001

Private Sub Command1_Click()

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

e = 2

i = 1

t = 1

Do While t >0.00001

i = i + 1

t = t / i

e = e + t

Loop

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

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

End Sub

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

/*

2.718282

Press any key to continue

*/

#include <stdio.h>

unsigned Fact(unsigned n) {

unsigned i,fact = 1

for(i = 1 i <= n ++i)

fact *= i

return fact

}

double Exp(int n) {

double e = 1.0

int i

for(i = 1i <= ni++)

e +=  1.0/Fact(i)

return e

}

int main() {

printf("%lf\n",Exp(20))

return 0

}


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

原文地址: http://outofmemory.cn/yw/11051267.html

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

发表评论

登录后才能评论

评论列表(0条)

保存