请问怎样通过(1-1/2+1/3-1/4
你这个求PI的公式不对啊,应该是PI/4=1-1/3+1/5-1/7+1/9-1/11。。。。。。
我在网上找了一个求到PI的800位的程序:
#include
int a=10000, b, c=2800, d, e, f[2801], g;
main()
{
for(;b-c;)
{
f[b++]=a/5;
}
for(;d=0,g=c*2;c-=14,printf("%。 4d",e+d/a),e=d%a)
{
for(b=c;d=d+f[b]*a,f[b]=d%--g,d/=g--,--b;d=d*b);
}
return 0;
}
一个牛人写的,我...全部
你这个求PI的公式不对啊,应该是PI/4=1-1/3+1/5-1/7+1/9-1/11。。。。。。
我在网上找了一个求到PI的800位的程序:
#include
int a=10000, b, c=2800, d, e, f[2801], g;
main()
{
for(;b-c;)
{
f[b++]=a/5;
}
for(;d=0,g=c*2;c-=14,printf("%。
4d",e+d/a),e=d%a)
{
for(b=c;d=d+f[b]*a,f[b]=d%--g,d/=g--,--b;d=d*b);
}
return 0;
}
一个牛人写的,我到现在还没看懂,另外我自己写了一个,不过效率不行,只能求到8位,理论上可以求任意位数,呵呵:
#include
#define N 7//N为PI的位数
void output(int a[],int n)
{
for(int i=0;i=0;i--)
{
if(a[i]>9)
{
a[i-1]++;
a[i]=a[i]-10;
}
else
{
break;
}
}
}
int compare(int a[],int b[],int n)
{
for(int i=0;ib[i])
{
return 1;
}
else if(a[i]=0;i--)
{
if(a[i]=0;i--)
{
if(a[i]>9)
{
a[i]=a[i]-10;
a[i-1]++;
}
a[i]=a[i]+b[i];
if(a[i]>9)
{
a[i]=a[i]-10;
a[i-1]++;
}
}
}
void toleft(int a[],int n)
{
for(int i=0;i 收起