操作系统寒武纪 - 会让企业IT高兴吗?
661
2022-10-01
某校2016专硕编程题-求e的值
题目
编写程序,求e的值, e = 1+ 1/1! + 1/2! + 1/3! +… 最后一项的值小于1e-6。
Java实现
实现1
public static double findE(){ double e = 1; int n = 1; //1,2,3,4,... double k = 1; //第n项值 while (k > 1e-6){ //计算阶乘 int j = 1; for (int i = n; i > 1 ; i--) { j *= i; } k = 1/(double)j; e += k; n++; } return e; }
时间复杂度:O(n^2)空间复杂度:O(1)
实现2
public static double findE2(){ double e = 0; int n = 1; //1,2,3,4,... double k = 1; //第n项值 int a = 1; //分母阶乘的值 while (k > 1e-6){ e += k; a *= n; k = 1/(double)a; n++; } return e;}
时间复杂度:O(n)空间复杂度:O(1)
Go实现
func eValue() float64 { var n float64 = 1 var e float64 = 0 s:= 1 k := 1 for n > 1e-6 { n = 1/float64(k) e += n k *= s s++ } return e}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~