实验6-1 近似求PI
本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。
公式:
#include<stdio.h>
int main(){
double eps;
scanf("%le", &eps);
double sum=1,i=1;
double n=i/(2*i+1);
//测试点3
if(eps>=1){
printf("PI = %.5lf",sum*2.0);
return 0;
}
//最后一项要小于eps,故设循环条件:为前n-1项大于eps便循环。
while(n>=eps){
sum+=n;
i++;
//公式推导简化,由公式提示中最后一项可得
//在前一项的基础上乘于 当前i值 和 除于(2*i+1)值
n=n*i/(2*i+1);
}
sum+=n;//不要忘记加上最后一项
printf("PI = %.5lf",sum*2.0);
return 0;
}
测试结果: