C++编程实践:自定义函数实现π/2级数求和

需积分: 10 1 下载量 45 浏览量 更新于2024-09-05 收藏 983KB DOCX 举报
在《C++程序设计实践教程》(任志鸿版)的第9章实验中,专注于“自定义函数简单实验”。本章节的实验内容围绕如何使用C++编程实现一个计算π/2的近似值,通过级数求和法,即Leibniz公式:π/2 = 1 + 1/3 + 2!/1*3*5 + ... + n!/(1*3*5^(2n+1))。关键部分包括三个自定义函数: 1. `int fact(int n_)`:这是一个计算阶乘的函数,用于得到分子中的n!。它使用循环结构,将从1到n的整数相乘,然后返回结果。 2. `int multi(int n_)`:原代码试图计算分母1*3*5^(2n+1),但这种方法会导致数值溢出问题,因为指数增长过快。实际上,这个函数并未实现,因为它不适用于解决这个问题。 3. `double newItem(int n_)`:这是关键的核心函数,用于计算级数中的新项。它计算n!/(1*3*5^(2n+1))的值,通过迭代更新`double_res`变量,将每个项乘入当前值。 在`main()`函数中,通过循环控制新项的计算直到其值小于预设的精度阈值`double_neps`(默认为1e-15)。累加所有满足精度的项,最终结果乘以2来估算π的值,并使用`printf_s`输出结果。 实验者提到使用了g++编译器版本8.1.0,在x86_64-posix-seh-rev0架构下运行,且该代码是实验者自学习过程中自行总结完成的。如果读者在学习C++时遇到类似实验,可以参考这个代码结构和算法,并根据需要调整精度阈值或优化级数求和的方法以提高计算效率。同时,实验者提供了邮箱地址1356199860@qq.com,表明他们愿意分享经验或进行进一步的交流。