c语言计算pi
‘壹’ C语言编程计算出π的值 最好有三种方法!! 急求 好人一生平安啊
我只说说π是怎么近似计算出来的,大一应该学过高数,可以知道:tan π/ 4 =1,从而π=4*arctan1,应用泰勒公式将arctan(x)展开,就可以得到
把这展开式展开,直到最后一项的绝对值小于1e-6为止。
下面是C语言递归实现:
#include<stdio.h>
#include<math.h>
void main()
{
float fuc(int n);
float s,pi;
for(int i=1;i<10000;i++)
{s=1.0/(2*i-1);
if(s<1e-6)
break;}
pi=fuc(i);
pi=pi*4;
printf ("pi=%10.6f ",pi);
}
float fuc(int n)
{
float pi;
if(n==1) pi=1;
else if(n%2==0)
pi=fuc(n-1)+(-1.0)/(2*n-1);
else pi=f(n-1)+1.0/(2*n-1);
return(pi);
}
程序运行结果pi=3.141498.
希望能明白明白π的实现原理,增进你的理解。
‘贰’ C语言中圆周率π怎么打
C语言中并不识别希腊字符π,要使用圆周率,需要自定义π的变量,并指定近似值。
可以使用宏定义的方式,当精度要求不高时,可以使用
#define PAI 3.14
或者
#define PAI 3.14159265
如果精度要求高,可以使用
#define PAI 3.14159265358979
具体定义几位小数,由运算要求精度决定,由于π是无理数,所以不可能使用绝对精确值。
当调用的时候,直接用宏定义名PAI替代即可。比如半径为5的圆周长为
double l = 2*PAI*5;
‘叁’ C语言计算pi
在0到1之间取两个随机数,如果这两个随机数(x,y)在四分之一圆内,就加一。
最后用落在圆内的点数,除以总点数,就是PI了。
#include
<stdio.h>
#include
<conio.h>
#include
<stdlib.h>
#include
<time.h>
#define
N
300000
main()
{
long
i,n=0;
float
x,y,pi;
srand(time(NULL));
for
(i=0;i<N;i++)
{
x=1.0*rand()/RAND_MAX;
y=1.0*rand()/RAND_MAX;
if
(x*x+y*y<1)
n++;
}
pi=4.0*n/N;
printf("pi=%f
",pi);
}
‘肆’ 用C语言编程计算π的值
#include<stdio.h>
#include<math.h>//开根号我用了数学库函数
int main()
{
double Pi=2,x=0,t;//我把第一项2作为Pi的初始值
while(1)
{
x=sqrt(x+2);//x是分母
t=2/x;//t是现在要乘的数
Pi=Pi*t;
if(t-1<1e-14) break;//因为t一定大于1,就这么写了;精确到小数点后14位
}
printf("%.14lf\n",Pi);//小数点后14位
return 0;
}