循环-02. 计算圆周率(15)
时间限制
400 ms
内存限制
32000 kB
代码长度限制
8000 B
判题程序
Standard
作者
杨起帆(浙江大学城市学院)
根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。
输入格式:
输入在一行中给出小于1的阈值。
输出格式:
在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。
输入样例:0.01输出样例:
3.132157
#include<stdio.h> double a_n(int i); double b_n(int i); int main(void) { double m; scanf("%lf",&m); int i=1; double sum=1.0; double f_i; do{ f_i=a_n(i)/b_n(i); sum+=f_i; if(f_i<m){ printf("%.6f\n",sum*2.0); break; } i++; }while(1); return 0; } double a_n(int i) { int start; double amass=1.0; for(start=1;start<=i;start++){ amass*=start; } return amass; } double b_n(int i) { int start; double amass=1.0; for(start=3;start<=2*i+1;){ amass*=start; start+=2; } return amass; }