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;
}


相关文章
|
算法 Unix BI
操作系统(5.2)--请求分页储存管理模式
在请求分页系统中所需要的主要数据结构是页表。为支持请求分页,须在页表中再增加若干项,供程序(数据)在换进、换出时参考。
651 0
|
SQL 数据库 索引
SQL 编程最佳实践简直太牛啦!带你编写高效又可维护的 SQL 代码,轻松应对数据库挑战!
【8月更文挑战第31天】在SQL编程中,高效与可维护的代码至关重要,不仅能提升数据库性能,还降低维护成本。本文通过案例分析探讨SQL最佳实践:避免全表扫描,利用索引加速查询;合理使用JOIN,避免性能问题;避免使用`SELECT *`,减少不必要的数据传输;使用`COMMIT`和`ROLLBACK`确保事务一致性;添加注释提高代码可读性。遵循这些实践,不仅提升性能,还便于后期维护和扩展。应根据具体情况选择合适方法并持续优化SQL代码。
210 0
|
存储 缓存 人工智能
[计算机网络(谢希仁 第八版)]第一章 概述(小节随堂测验+答案解析)
[计算机网络(谢希仁 第八版)]第一章 概述(小节随堂测验+答案解析)
|
存储
分页存储管理系统的计算
分页存储管理系统的计算
1119 2
|
存储 安全 Linux
操作系统(13)-----文件管理4
操作系统(13)-----文件管理
233 0
循环队列中的求队列长度公式怎么来的?【数学角度】
循环队列中的求队列长度公式怎么来的?【数学角度】
1046 0
|
应用服务中间件 Apache
Mac环境下安装启动Tomcat
一、 下载 登录Apache Tomcat官网,地址 http://tomcat.apache.org ,瞅瞅左边的Download,点击选择需要下载的版本 Tomcat9 二、设置本地放置路径 下载下来包解压 三、启动Tomcat 打开终端,切换到我们Tomcat的bin目录 再输入:.
2662 0
|
存储 算法
408数据结构学习笔记——二叉树的遍历和线索二叉树(上)
408数据结构学习笔记——二叉树的遍历和线索二叉树
339 1
408数据结构学习笔记——二叉树的遍历和线索二叉树(上)
|
存储 缓存 调度
一文读懂循环队列的实现细节
一文读懂循环队列的实现细节
838 0
|
算法 安全
二叉树的基本操作(如何计算二叉树的结点个数,二叉树的高度)
二叉树的基本操作(如何计算二叉树的结点个数,二叉树的高度)
672 0