一个求圆周率的程序(c++)
#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;
}