拜求该题算法和思想

sincey 2004-04-07 11:47:28
求 e=1+1/1!+1/2!+...+1/n! 精确到1000位
...全文
21 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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,数学学得不好,这个等式是否趋向一个极限,还是发散的?
相关推荐
发帖
数据结构与算法

3.2w+

社区成员

数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
帖子事件
创建了帖子
2004-04-07 11:47
社区公告
暂无公告