7-50 近似求PI(15 分)
本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。
输入格式:
输入在一行中给出精度eps,可以使用以下语句来读输入:
scanf("%le", &eps)
输出格式:
在一行内,按照以下格式输出π的近似值(保留小数点后5位):
PI = 近似值
输入样例:
1E-5
输出样例:
PI = 3.14158
思路:
最开始写的时候把每一项都割裂来看了,单独算的分子,分母。发现有个测试点过不了,就去网下找了下,参考网上的重新写的。看来还是看做整体来写比较简单。
代码:
#include <stdio.h>
int main()
{
double eps;
scanf("%le", &eps);
double sum=1;
double temp=1;
for(int i=1;temp>eps;i++)
{
temp = temp*i/(2*i+1);
sum += temp;
}
printf("PI = %.5f\n", 2*sum);
return 0;
}