#include <stdio.h>
#include <math.h>
int main(){
double pi=0,result
int i=1
int s=-1
do{
s*=-1
result=1.0/i*s
i+=2
pi+=result
}while(fabs(result)>余拍薯0.000001)
printf("竖者pi=%10.4lf\n"贺羡,pi*4)
return 0
}
一个足以让渗伏你吐血的计算400位pi的C程序:int a=10000, b, c=2800, d, e, f[2801], g
main() {
for(b-cf[b++]=a/5)
for(d=0,g=c*2c -=14,printf("%.4d"纯渗,e+d/a),e=d%a)
for(b=cd+=f[b]*a,f[b]=d%--g,d/=g--,--bd*=b)
}
理论上只要用大数算法扩了就能一直算下去。我在Palm上面实现的那个就是基于这个算法,没有扩,算到4680位(受到Palm平台32k数组的长度限制)。
这个程序的特点是:你抱着想看看算pi原理的希望来读这个程序,结果发现就是看了也还是看不懂~~
转的,但是百度知道不允许贴地址哦
第二种:
用C语言编程π*π/6=1/1*1+1/2*2+1/3*3+。。。+1/n*n
#include<stdio.h>
#include<math.h>
main()
{
int n,i
double s=0
printf("输入n:")
scanf("%d",&n)
for(i=1i<=ni++)
{s=s+1.0/(i*i)
}
printf("pai=%f",sqrt(s*6))
}
第三种:
求pi=(1+1/做喊脊(1*3))*(1+1/(3*5))*(1+1/(5*7))…………直到最后一项的分数小于10的负6次方为止。
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void main()
{
double pi,i,j,sigh,term
i=1,j=3,sigh=1,term=1
while(sigh>1e-6)
{
sigh=1/(i*j)
term=(1+sigh)*term
i=i+2
j=j+2
}
pi=term
printf("pi=%f\n",pi)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)