题目:按照公式求π的近似值,直到发现某一项的绝对值小于10的-6次为止(该项不累加)。输出时保留8位小数。
输出:PI:3.14159065
题目分析:
π/4近似1/1、1/3、1/5...正负交替累加,其中分子的值恒为1,只需构建2个函数,分母和正负;不难发现,分母是奇数,若n代表项数则分母为2n-1,项数为奇数时为+1,偶数时为-1。代码如下:
#include<stdio.h>
#include<math.h>
double fm(double a)
{
return 2*a-1;
} //定义分母函数
int h(int a)
{
if(a%2==0) return -1;
else return 1;
} //定义正负函数
int main()
{
double a,sum=0,p;
for(a=1;fabs(h(a)/fm(a))>=1e-6;a++)
{
sum+=h(a)/fm(a);
}
p=4*sum;
printf("PI:%.8lf",p);
return 0;
}
输出结果: