【CC++语⾔】B⽤格雷⼽⾥公式求π——001
输⼊精度e,使⽤格雷⼽⾥公式(π/4=1-1/3+1/5+...)求π的近似值,精确到最后⼀项的绝对值⼩于e。要求定义和调⽤函数funpi(e)求π的近似值。
我们这⾥的e就是我们下⽂要输⼊的n的值(精度e),再此程序中我们可以主观输⼊我们想输⼊的值,从⽽规定其格雷⼽⾥公式计算到后⾯的多少位。
⽐如在本题中,我主观输⼊0.000001(1e-6),从⽽得出其输出的值,在结尾printf的输出程序内,我们也可以去改变其⼩数的精度位数,从⽽得出更精确的π值(在下⾯的程序中的π都以pi来表⽰)。
#include<stdio.h>
#include<math.h>
double funpi(double x)
{
int sign=1;
double n=1.0,term=1.0,pi=0.0;
while(fabs(term)>=x)
{
pi=pi+term;
n=n+2;
sign=-sign;
term=sign/n;
}
return pi;
}
int main()
{
double n;
printf("输⼊:");
scanf("%lf",&n);
double pi=0.0;
pi=funpi(n);
pi=4.0*pi;
printf("输出:pi = %.6lf\n",pi);
return 0;
}
#include<stdio.h>
#include<math.h>
double funpi(double x)
{
int sign=1;
double n=1.0,term=1.0,pi=0.0;        while(fabs(term)>=x)
{
pi=pi+term;
n=n+2;
sign=-sign;
term=sign/n;
}
return pi;
}
int main()
{
double n;
printf("输⼊:");
scanf("%lf",&n);
double pi=0.0;
pi=funpi(n);
b总001pi=4.0*pi;
printf("输出:pi = %.6lf\n",pi);
return 0;
}
运⾏程序: