7-15 计算圆周率 (15分)

根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。

pi/2=1+1/3+2!/35+…+n!/(357…(2*n+1))

输入格式:
输入在一行中给出小于1的阈值。

输出格式:
在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。

输入样例:
0.01

输出样例:
3.132157

#include
double pi(double n)
{
	double up=1,down=1,pi;
	for(int i=1;i<=n;i++)
	{
		up*=i;
	}
	for(int j=3;j<=(2*n+1);j+=2)
	{
		down*=j;
	}
	pi=up/down;
	return pi;
}
int main()
{
	double n,sum=0;
	scanf("%lf",&n);
	int i=1;
	while(n<=pi(i))
	{
		sum+=pi(i);
		i++;
	}
	sum+=pi(i);
	printf("%.6f",(1+sum)*2);
	return 0;
}

此题最好全部定义为double,否则int转换的时候测试点1会不通过

你可能感兴趣的:(PTA)