3331 - 例题5-7 求圆周率pi的近似值

用如下公式

求圆周率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;
}
时间限制 1 秒
内存限制 12 MB
讨论 统计
上一题 下一题