# c语言 圆周率10000位,计算圆周率 Pi (π)值, 精确到小数点后 10000 位(C语言)

π = 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

--------------------------------------------------------------------------------

09-28 1174
03-17 382
07-12 7504
03-11 5770
11-27 9221
12-03 1514
06-25 3887

• 非常没帮助
• 没帮助
• 一般
• 有帮助
• 非常有帮助