拜求该题算法和思想

sincey 2004-04-07 11:47:28
求 e=1+1/1!+1/2!+...+1/n! 精确到1000位
...全文
5 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gnefuil 2004-04-08
高精度除法一点一点除啊
回复
BlueSky2008 2004-04-08
int a[3302],b=3301,*c=a,d,e,f;
main()
{
for(e=b;--e;*c++=1);
*c=2;
for(d=2001;d--;printf("%05d",f))
for(c=a,e=b;e;f/=e--)
{f+=*c*1e5;
*c++=f%e;}
}
回复
zhaoyifei1 2004-04-08
1/n!<(e/n)exp(n)/(2npi)exp(0.5)<(1+1/2n)/n!
精度很高。试试看。但是达不到你的要求。你自己发明个公式吧!
回复
sincey 2004-04-08
多谢各位大虾,我参考了一下清华出版的《高级程序员水平考试》,上面介绍了一种用数组存储精度的方法,但好像敲进去结果不对!!!
回复
lnetant 2004-04-08
考虑一下时间复杂度的问题可以吗?有没有时间比以上各位更简单的算法,算法不是要考虑时间和空间的复杂度问题吗?要不要算法也没用了,一点小提议
回复
NewStarSE 2004-04-08
当然是收敛的。
回复
Arlarmiss 2004-04-08
知心的朋友,我将我的做出示给你,希望能给你一些启发.
算法如下:
# include<stdio.h>
main()
{ float s,t;
int i,k,n;
long jc;
printf("请输入N:");
scanf("%d",&n);
printf("\n");
s=1;
k=1;
do {
jc=1
for(i=1;i<k;i++) jc=jc*i;
t=t/jc;
if((t-(int)t)>0.001) break;
s=s+t;
k++;
}while(k<=n);
printf("结果为:%f\n",s);
}

祝您好运
回复
timiil 2004-04-08
用牛顿叠代求倒数,用高精度乘法求阶乘。

BTW,数学学得不好,这个等式是否趋向一个极限,还是发散的?
回复
发动态
发帖子
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
社区公告
暂无公告