c++语言计算圆周率,计算圆周率的C++程序(30000位)
//计算圆周率的C++程序(30000位)#include #include #include #define N 10000//using namespace std;void mult(int *a,int b,int *s){for(int i=N,c=0; i>=0; i--){int y=a[i]*b+c;c=y/10;s[i]=y%10;}}void divi(int *a,..
//计算圆周率的C++程序(30000位)
#include #include #include #define N 10000
//using namespace std;
void mult(int *a,int b,int *s)
{ for(int i=N,c=0; i>=0; i--)
{ int y=a[i]*b+c;
c=y/10;
s[i]=y%10;
}
}
void divi(int *a,int b,int *s)
{ for(int i=0,c=0;i<=N;i++)
{ int y=a[i]+c*10;
c=y%b;
s[i]=y/b;
}
}
void incr(int *a,int *b,int *s)
{ for( int i=N,c=0; i>=0; i-- )
{ int y=a[i]+b[i]+c;
c=y/10;
s[i]=y%10;
}
}
bool eqs(int *a,int *b)
{ int i=0;
while( a[i]==b[i] && i<=N )
i++;
return i>N;
}
void print(int *pi)
{ printf("%1d./n",*pi);
for(int i=1;i<=N;i++)
{ printf("%d",pi[i]);
if (i%10==0)
printf(" ");
if (i%70==0)
printf("/n");
}
};
//int main(int argc, char *argv[])
void test()
{ int lpi[N+1],lls[N+1],lsl[N+1],lp[N+1];
int *pi=lpi,*ls=lls,*sl=lsl,*p=lp;
int i;
memset(pi,0,sizeof(lpi));
memset(ls,0,sizeof(lls));
memset(sl,0,sizeof(lsl));
memset(p,0,sizeof(lp));
*pi=*ls=*sl=1;
for(i=1;i{ mult(ls,i,sl);
divi(sl,2*i+1,ls);
incr(pi,ls,p);
//if(eqs(pi,p)) break;
int *t;
t=p;
p=pi;
pi=t;
print(pi);
}
mult(p,2,pi);
print(pi);
printf("/n/nSUCCESS!/n");
//return EXIT_SUCCESS;
}

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)