# 计算圆周率 Pi (π)值

π = 2 + 2/3 + 2/3*2/5 + 2/3*2/5*3/7 + ...

 void __fastcall TForm1::Button1Click(TObject *Sender){  double x=2, z=2;  int a=1, b=3;  while(z>1e-15)  {    z = z*a/b;    x += z;    a++;    b+=2;  }  Memo1->Text = AnsiString().sprintf("Pi=%.13f", x);}

Pi=3.1415926535898

 void __fastcall TForm1::Button2Click(TObject *Sender){  const ARRSIZE=1010, DISPCNT=1000; //定义数组大小，显示位数  char x[ARRSIZE], z[ARRSIZE]; //x[0] x[1] . x[2] x[3] x[4] .... x[ARRSIZE-1]  int a=1, b=3, c, d, Run=1, Cnt=0;  memset(x,0,ARRSIZE);  memset(z,0,ARRSIZE);  x[1] = 2;  z[1] = 2;  while(Run && (++Cnt<200000000))  {    //z*=a;    d = 0;    for(int i=ARRSIZE-1; i>0; i--)    {      c = z[i]*a + d;      z[i] = c % 10;      d = c / 10;    }    //z/=b;    d = 0;    for(int i=0; i    {      c = z[i]+d*10;      z[i] = c / b;      d = c % b;    }    //x+=z;    Run = 0;    for(int i=ARRSIZE-1; i>0; i--)    {      c = x[i] + z[i];      x[i] = c%10;      x[i-1] += c/10;      Run |= z[i];    }    a++;    b+=2;  }  Memo1->Text = AnsiString().sprintf("计算了 %d 次/r/n",Cnt);  Memo1->Text = Memo1->Text + AnsiString().sprintf("Pi=%d%d./r/n", x[0],x[1]);  for(int i=0; i  {    if(i && ((i%100)==0))    Memo1->Text = Memo1->Text + "/r/n";    Memo1->Text = Memo1->Text + (int)x[i+2];  }}

Pi=03.
1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
8214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196
4428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273
7245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094
3305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912
9833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132
0005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235
4201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859
5024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303
5982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989

const ARRSIZE=10100, DISPCNT=10000; //定义数组大小，显示位数

Pi=03.
1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
8214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196
4428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273
7245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094
3305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912
9833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132
0005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235
4201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859
5024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303
5982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989
3809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151

... 限于篇幅, 这里就省略了, 还是留给你自己来算吧！

5020141020672358502007245225632651341055924019027421624843914035998953539459094407046912091409387001
2645600162374288021092764579310657922955249887275846101264836999892256959688159205600101655256375678

• 本文已收录于以下专栏：

## OpenMP之数值积分（求圆周率Pi）（sections）

// Pi.cpp : 定义控制台应用程序的入口点。 //求圆周率PI #include "stdafx.h" #include #include #include #include usi...
• he_xiang_
• 2014年09月24日 11:16
• 1472

## 运行示例sparkPi计算圆周率（1.1）

1  启动spark (1) 启动hadoop 启动成功master节点进程： Slave节点进程： (2) 启动spark（注意路径） 启动成功：   Sl...
• tian_li
• 2015年11月01日 09:56
• 2162

## Linux 下计算圆周率

• robertsong2004
• 2014年09月01日 17:32
• 2597

## 随机投点法计算圆周率

#include #include #include using namespace std; // 获得0-1之间的随机数 double get_random_num () { re...
• niwenxian1
• 2014年02月12日 15:29
• 2269

## 利用spark进行圆周率的计算

package example import org.apache.spark.{SparkContext, SparkConf} import scala.math.random /** * ...
• sinat_31726559
• 2016年06月10日 02:19
• 1118

## 【MFC】多线程计算圆周率π的值

• sickbaimu
• 2017年06月14日 23:21
• 341

## 【python圆周率计算】python计算圆周率π的值到任意位

• u013421629
• 2017年05月23日 15:15
• 8151

## Java实现计算圆周率π的两种方法

π≈3*2^n*y_n 其中，n代表割圆次数，y_n代表圆中内嵌正6*n边形的边长
• u013344815
• 2015年12月12日 15:24
• 10645

## 并行计算圆周率

• judyge
• 2015年05月30日 11:43
• 728

## 蒙特卡洛算法——投点求圆周率Pi

• lhkaikai
• 2014年05月11日 11:39
• 5673

举报原因： 您举报文章：计算圆周率 Pi (π)值 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)