两种方法
pi/4=1-1/3+1/5-1/7+……+1/(2n-1)x(-1)n-1
pi/2=2x2/1x34x4/3x5*……2nx2n/(2n-1)(2n+1)
要求误差小于10-6
下面是代码
#include<stdio.h>
#include<math.h>
int main()
{
int i;
double l,pi = 0;
for(i=1;1.0/(2*i-1)>1E-7;i++)
{
l=1.0/(2*i-1);
pi=pow(-1,i-1)*l+pi;
}
printf("%lf",pi*4);
return 0;
}
#include<stdio.h>
int main()
{
double pi=1.0,l;
int i;
for(i=1;(2*i)*(2*i)/((2*i-1)*(2*i+1))>1E-7;i++)
{
l=(2*i)*(2*i)*1.0/((2*i-1)*(2*i+1));
pi*=l*1.0;
}
printf("%lf",2*pi);
return 0;
}
希望对大家有所帮助