PTA

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

2/π=1+1/3+2!/(3*5)+3!/(3*5*7)+........n!/(3*5*7*.......2n+1)

输入格式:

输入在一行中给出小于1的阈值。

输出格式:

在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。

输入样例:

0.01

输出样例:

3.132157

分析:总体为一个和的累加,其中每一项为一个单独的项,分子是结乘,分母是奇数项的乘积,将其分别表示出来,当这一项大于等于阈值时循环累加,最后再加上最后一项小于阈值的数,此时累加和计算完毕,将结果乘2即为Π的值

代码:

#include<stdio.h>

void main(){

    float sum=1,x,j;

    float    m=1,n=3;

    j=m/n;

    int  i=1, k=3;    

    scanf("%f",&x);

    while(j>=x){

            sum=sum+j;

            i=i+1;

            m=m*i;

            k=k+2;

           n=n*k;

            j=m/n;

        }

    sum=sum+j;    //j小于阈值时跳出循环,此时sum中并没有加上J,所以要把j加上。

    printf("%.6f",sum*2);

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容