当前位置: 代码迷 >> C语言 >> C 的题目望高手指点
  详细解决方案

C 的题目望高手指点

热度:106   发布时间:2004-11-01 15:17:00.0
C 的题目望高手指点

编写程序,求E=1+1\1!+1\2!+1\3!+1\4!+...................+1\N!

小弟在次谢过

搜索更多相关的解决方案: 编写程序  

----------------解决方案--------------------------------------------------------
我给你写了一下,你自己研究吧,^_^
double fun(int n)
{
long sum=1,E=1;
int i;
for(i=1;i<=n;i++){
sum*=i;
E+=1/sum;
}
return E;
}

----------------解决方案--------------------------------------------------------

long E=0;这样 不然多加了一个1


----------------解决方案--------------------------------------------------------

高手,这次来个n!的倒数。哈哈,楼主是要进行科学计算马???!!!


----------------解决方案--------------------------------------------------------
以下是引用poppylx在2004-11-01 23:29:29的发言:

long E=0;这样 不然多加了一个1

再仔细瞧睢^_^
----------------解决方案--------------------------------------------------------
sum*=i;//??????????????
----------------解决方案--------------------------------------------------------
以下是引用knocker在2004-11-02 19:46:05的发言: 再仔细瞧睢^_^

哦 我错了 题目跟我以前做的不一样


----------------解决方案--------------------------------------------------------

本人对数学比较敏感所以说让我们来看看会发生什么情况!!

首先我认为这个好像是求数学里面的那个叫做自然常数e吧!!他的值是e=2.71828……

看到了吗!!我查了一下书发现果是个计算e常数的麦克劳宁公式。哈哈,看来如果我们计算的没有必要下去了。

我们可以使用这个lim(1+1/x)exp x=e当n-〉无穷大,这样就简单了。 如果使用float型的,n超过10的就不用计算了,算了也使白算!!!


----------------解决方案--------------------------------------------------------
这涉及到精度问题,我只是把那个算法提出来
----------------解决方案--------------------------------------------------------

double fin(int N) { double sum=0.0,n=1.0; for(int i=1;i<N;i++) { n=n/i; sum+=1/n; }

return sum;

}


----------------解决方案--------------------------------------------------------
  相关解决方案