根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。

输入在一行中给出小于1的阈值。
在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。
0.01
3.132157
问题分析
| 分子 | 分母 | |
| 第一项 | 1(0!) | 1 |
| 第二项 | 1(1!) | 1*3 |
| 第三项 | 2(2!) | 1*3*5 |
| 第n项 | n! | 1*3*5*.....*(2*n+1) |
根据每一项的规律可以分别求出分子分母然后求出这一项的值然后就可以相加求和直到加上的这一项小于给定的阈值,然后跳出循环.
代码实现
- #include
- int main(){
- double pi=0;
- double n;
- scanf("%lf",&n);
- for(int i=0;i<10000;i++){
- double fenzi=1;
- double fenmu=1;
- double sum=0;
- if(i==0){
- fenzi=1;
- }else{
- for(int k=1;k<=i;k++){
- fenzi*=k;
- }
- }
- for(int j=1;j<=2*i+1;j+=2){
- fenmu*=j;
- }
- sum=fenzi/fenmu;
- pi+=sum;
- if(sum
- printf("%lf",2*pi);
- break;
- }
- }
- return 0;
- }