3331 - 例题5-7 求圆周率pi的近似值
时间限制 : 1 秒
内存限制 : 12 MB
用如下公式

求圆周率PI的近似值,直到发现某一项的绝对值小于10<sup>-6</sup>为止(该项不累加)。
要求输出的结果总宽度占10位,其中小数部分为8位。
程序中使用浮点型数据时,请定义为双精度double类型。
如果需要计算绝对值,可以使用C语言数学库提供的函数fabs,如求x的绝对值,则为fabs(x).
题目输入
无
题目输出
PI=圆周率的近似值
输出的结果总宽度占10位,其中小数部分为8位。
末尾输出换行。
输入/输出样例
输入格式
无
输出格式
PI=3.14159065
C语言解答
#include<stdio.h> #include<math.h> int main() { double pi,sum,i,sign=-1; for (sum=1,i=3;(1.0/i)>=pow(10.0,-6);i+=2) { sum += sign*(1.0/i); sign=-sign; } printf("PI=%10.8f\n",4*sum); getchar(); return 0; }
C++解答
#include <cstdio> #include <cmath> int main (void){ double i,PI=0,n=0,s; for(i=1.0;i>0.0;i+=2){ s=(pow(-1.0,n+2))/i; if(fabs(s)<pow(0.1,6.0)) break; PI=PI+s; n++; } printf("PI=%10.8f\n",PI*4); return 0; }