欢迎光临散文网 会员登陆 & 注册

一个求圆周率的程序(c++)

2021-02-18 19:26 作者:Stephenson2_18  | 我要投稿

#include<bits/stdc++.h>

using namespace std;

int main(void)

{

//freopen("圆周率.txt","w",stdout);

    int a[2]={956,80},b[2]={57121,25},i=0,j,k,p,q,r,s=2,t,u,v,N,M=10000;

    printf("这是一个求圆周率的程序\n那么,你想求到第几位呢?\n输入键:");

    cin>>N,N=N/4+3;

    long *pi=new long[N],*e=new long[N];

    while(i<N)

        pi[i++]=0;

    while(--s+1)

    {

        for(*e=a[k=s],i=N;--i;)

            e[i]=0;

        for(q=1;j=i-1,i<N;e[i]?0:++i,q+=2,k=!k)

        for(r=v=0;++j<N;pi[j]+=k?u:-u)

        {

        u=(t=v*M+(e[j]=(p=r*M+e[j])/b[s]))/q;

r=p%b[s];

v=t%q;

}

    }

    while(i--)

    {

    (pi[i]=(t=pi[i]+s)%M)<0?pi[i]+=M,s=t/M-1:s=t/M;

}

i=1;

cout<<"3.";

cout<<pi[i];

    for(;++i<N-2;)

printf("%d",pi[i]);

    delete []pi,delete []e;//,cin.ignore(),cin.ignore();

    return 0;

}


一个求圆周率的程序(c++)的评论 (共 条)

分享到微博请遵守国家法律