7-15 计算圆周率 (15 分)

简介: 根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。2π​=1+31​+3×52!​+3×5×73!​+⋯+3×5×7×⋯×(2n+1)n!​+⋯输入格式:输入在一行中给出小于1的阈值。

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

2π=1+31+3×52!+3×5×73!+⋯+3×5×7×⋯×(2n+1)n!+⋯

输入格式:

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

输出格式:

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

输入样例:

0.01

输出样例:

3.132157

代码如下:

#include <stdio.h>
double fac(int n);
double fun(int n);
int main()
{
    double min, pi = 0;
    scanf("%lf", &min);
    int i = 0;
    for (i = 0;; i++)
    {
        pi += fac(i) / fun(i);
        if (fac(i) / fun(i) < min)
            break;
    }
    printf("%.6lf", 2.0 * pi);
    return 0;
}
double fac(int n)
{
    double s = 1;
    int i;
    if (n == 0)
        return 1;
    for (i = 1; i <= n; i++)
        s *= i;
    return s;
}
double fun(int n)
{
    double s = 1;
    int i;
    for (i = 3; i <= 2 * n + 1; i += 2)
        s *= i;
    return s;
}


相关文章
|
7月前
|
API
PTA-给定精度,求圆周率PI的近似值
给定精度,求圆周率PI的近似值
121 1
|
6月前
1056 组合数的和 (15 分)
1056 组合数的和 (15 分)
7-4 计算职工工资(15分)
给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。
96 0
7-69 计算圆周率
7-69 计算圆周率
109 0
L2-018 多项式A除以B (25 分)(数组模拟)
L2-018 多项式A除以B (25 分)(数组模拟)
180 0
L2-018 多项式A除以B (25 分)(数组模拟)
L1-048 矩阵A乘以B (15 分)
L1-048 矩阵A乘以B (15 分)
114 0
L1-048 矩阵A乘以B (15 分)
L1-004 计算摄氏温度 (5 分)
L1-004 计算摄氏温度 (5 分)
93 0
L1-013 计算阶乘和 (10 分)
L1-013 计算阶乘和 (10 分)
61 0
L1-012 计算指数 (5 分)
L1-012 计算指数 (5 分)
90 0
h0039. 平方数 (15 分)
h0039. 平方数 (15 分)
135 0