题目
输入格式及样例
格式
输入在一行中给出精度eps,可以使用以下语句来读输入:
样例
1E-5
输出格式及样例
格式
在一行内,按照以下格式输出π的近似值(保留小数点后5位):
样例
PI = 3.14158
参考代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
double fac(int x) {
double sum = 1;
for (int i = 1; i <= x; i++) {
sum *= i;
}
return sum;
}
double fact(int x) {
double sum = 1;
for (int i = 1; i <= x; i++) {
sum = sum * (2 * i + 1);
}
return sum;
}
int main() {
double eps;
scanf("%le", &eps);
double PI = 1.0;
/*double a = fac(eps);
double b = fact(eps);*/
//printf("%lf %lf", a, b);
int t = 0;
for (int i = 1; fac(i)/ fact(i) >= eps; i++, t = i) {
PI = PI + fac(i) / fact(i);
}
PI = PI + fac(t) / fact(t);
//int index = 1;
//for (int i = 1;; i+=2) {
//
// PI = PI + fac(index) / fact(i);
// index++;
// if (fac(index) / fact(i) < eps)
// break;
//}
printf("PI=%.5lf", 2.0*PI);
return 0;
}