成都执业药师招聘:计算圆周率后1000位,以每行50位,5位一空格

来源:百度文库 编辑:查人人中国名人网 时间:2024/07/16 04:52:17
高分悬赏!!!!
用c++

网上有现成的。

#include \"stdio.h\"
#include \"math.h\"
void main()
{
float s;
int b,x,n,c,i,j,d,l,a[5000];
printf(\"\\n 输入精确位数\");
scanf(\"%d\",&x);
for(s=0,n=1;n<=5000;n++)
{s=s+log((2*n+1)/n);
if(s/log(10)>x) break;}
for(i=0;i<=x+1;i++) a[i]=0;
for(c=1,j=n;j>=1;j--)
{d=2*j+1;
for(i=0;i<=x;i++)
{a[i]=c/d;c=(c%d)*10+a[i+1];}
a[x+1]=c/d;
for(b=0,i=x+1;i>=0;i--)
{a[i]=a[i]*j+b;b=a[i]/10;a[i]=a[i]%10;}
a[0]=a[0]+1;c=a[0];}
for(b=0,i=x+1;i>=0;i--)
{a[i]=a[i]*2+b;b=a[i]/10;a[i]=a[i]%10;}
printf(\"\\n pi=%d.\",a[0]);
for(l=10,i=1;i<=x;i++)
{printf(\"%d\",a[i]);l++;
if(l%5==0)printf(\" \");
if(l%50==0)printf(\"\\n\");}
}

现在有现成的软件计算,直接使用就可以了。

比如SuperPI等等

算圆周率,用极限,就是算多变性的边长