9177. 公式计算1:求π
9177. 公式计算1:求π
【问题描述】
有公式 π/2 = (2/1 x 2/3) x (4/3 x 4/5) x (6/5 x 6/7) x … x [2n/(2n-1)x2n/(2n+1)],利用该公式可以计算π的近似值。给定一个精度值e,求前后两次迭代之差的绝对值小于e时相应的最小迭代次数n(n大于等于2)。提示:请用double类型的变量进行计算。
【输入形式】
从标准输入中读入e(e>=0.000001)的值。
【输出形式】
在标准输出上输出迭代次数n。
【输入样例】
0.01
【输出样例】
9
【样例说明】
输入的精度为0.01。利用上述计算公式求π值,当n为7时,求得的π的近似值为3.038674;当n为8时,求得的π的近似值为3.05059,两者之差的绝对值为0.011916,大于要求的精度0.01,所以应继续迭代计算。当n为9时,求得的π的近似值为3.060035,与n为8求得的近似值之差的绝对值是0.009445,小于要求的精度,所以满足精度要求的最小迭代次数为9。
【评分标准】
该题要求输出满足精度要求的最小迭代次数,共有5个测试点。
#include<stdio.h>
double fun(int n)
{
int i;
double num;
num=1;
for(i=1;i<=n;i++)
{
num=num*(2*i*1.0/(2*i-1)*2*i*1.0/(2*i+1));
}
return 2*num;
}
int main()
{
double m,e,u;
int n,count=0,i;
scanf("%lf",&e);
for(i=1;i<10000;i++)
{
u=fun(i+1)-fun(i);
//printf("%lf ",u);
if(u<e) break;
}
printf("%d",i+1);
return 0;
}

浙公网安备 33010602011771号