高精度计算e

e=2.71828182845904523536028747135......

高精度计算e非常简单,下面是e的高精度计算程序(为追求代码精简,程序效率并非最好)。

程序一

采用公式


C代码:

#include<stdio.h>
long a,b,i,j,k,N=10005,e[10005],c[10005];
int main(void)
{   /*计算10000位e(含整数2)*/
    for(*c=1;++i,k<N;c[k]?0:++k)
    for(b=0,j=k-1;++j<N;b=a%i)e[j]+=(c[j]=(a=b*10+c[j])/i);
        for(;--j;e[j]%=10)e[j-1]+=e[j]/10;
    for(printf("2.");++j<N-5;)printf("%ld",e[j]);
    return 0;
}

程序二

采用公式

C代码:

#include <stdio.h>
int main(void)
{  /*计算e小数点后10000位*/
    int N=10008,i=1,b=1,a[10009];
    while(++i<N)a[a[i]=1]=2;
    for(;(i=--N)>7;printf("%d",b))
        for(;--i;b=10*a[i-1]+b/i)a[i]=b%i;
    return 0;
}

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值