当前位置: 首页 > news >正文

【C语言程序设计】C语言求圆周率π(三种方法)

题目一:

利用公式①计求π的近似值,要求累加到最后一项小于10^(-6)为止。

程序代码:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){float s=1;float pi=0;float i=1.0;float n=1.0;while(fabs(i)>=1e-6){pi+=i;n=n+2;// 这里设计的很巧妙,每次正负号都不一样s=-s;i=s/n;}pi=4*pi;printf("pi的值为:%.6f\n",pi);return 0;
}

运行结果:

pi的值为:3.141594

上面的代码,先计算π/4的值,然后再乘以4,s=-s; 用的很巧妙,每次循环,取反,结果就是,这次是正号,下次就是负号,以此类推。

题目二:

根据公式②,用前100项之积计算π的值。

本题提供了两种解法。

[代码一]程序代码:

#include <stdio.h>
#include <math.h>
int main(){float pi=1;float n=1;int j;for(j=1;j<=100;j++,n++){if(j%2==0){pi*=(n/(n+1));}else{pi*=((n+1)/n);}}pi=2*pi;printf("pi的值为:%.7f\n",pi);return 0;
}

运行结果:

pi的值为:3.1260781

此算法的主要思想:

观察分子数列:

a1=2 a2=2

a3=4 a4=4

a5=6 a6=6

......

由此得知,当n为偶数时,an=n;当n为奇数时,an=a(n+1)=n+1;

同理观察分子数列:

b1=1 b2=3

b3=3 b4=5

b5=5 b6=7

b7=7 b8=9.......

由此可知,当n为奇数时,bn=n,当n为偶数时,bn=b(n+1)。

综上可知,当n为奇数时,每次应乘以(n+1)/n。当n为偶数时,每次应乘以n/(n+1)。

————————————

[代码二]程序代码:

#include <stdio.h>
#include <math.h>
int main(){float term,result=1;int n;for(n=2;n<=100;n+=2){term=(float)(n*n)/((n-1)*(n+1));result*=term;}printf("pi的值为:%f\n", 2*result);return 0;
}

运行结果:

pi的值为:3.126079

算法思想:

采用累乘积算法,累乘项为term=n*n/((n-1)*(n+1)); n=2,4,6,...100。步长为2。

动图封面

相关文章:

【C语言程序设计】C语言求圆周率π(三种方法)

题目一&#xff1a; 利用公式①计求π的近似值&#xff0c;要求累加到最后一项小于10^(-6)为止。 程序代码&#xff1a; #include <stdio.h> #include <stdlib.h> #include <math.h> int main(){float s1;float pi0;float i1.0;float n1.0;while(fabs(i)&…...

常见的特殊端口号及其用途

21端口&#xff1a;FTP&#xff08;文件传输协议&#xff09;服务端口。FTP允许用户进行文件传输&#xff0c;如上传和下载文件。22端口&#xff1a;SSH&#xff08;安全外壳协议&#xff09;服务端口。SSH用于远程登录到服务器&#xff0c;并提供加密的数据传输。23端口&#…...

Linux(ubuntu) 安装kotlin

Kotlin 是一种基于 Java 语言的静态类型编程语言&#xff0c;它可以运行于 JVM 上 1. 安装 Java Development Kit (JDK) Kotlin 运行于 JVM 上&#xff0c;所以首先需要安装 Java Development Kit&#xff08;JDK&#xff09; Ubuntu 或 Debian 系统 sudo apt update sudo a…...

微信小程序提交成功设置提示

在微信小程序中&#xff0c;当用户成功提交表单或完成某项操作后&#xff0c;通常我们会设置一个提示来告知用户操作已完成。这种提示通常可以通过几种方式来实现&#xff0c;例如使用 wx.showToast 方法显示一个短暂的提示消息&#xff0c;或者跳转到一个新的页面并显示成功信…...

Pycharm与Anaconda安装

网址&#xff1a; Pycharm&#xff1a;https://www.jetbrains.com/pycharm/ Anaconda&#xff1a;https://www.anaconda.com/download/ 官网下载速度太慢可以选择到清华源下载&#xff1a;https://repo.anaconda.com/archive/ 一&#xff1a;Anaconda安装 安装&#xff1a; …...

阿里云数据盘挂载目录

1、先登录服务器创建新目录aaa 2、云盘都快照备份下。后续操作完核实无误了&#xff0c;您根据您需求删除快照就行&#xff0c; 然后登录服务器内执行&#xff1a; fdisk -l lsblk blkid ll /aaa 3、执行&#xff1a;&#xff08;以下命令是进行数据盘做ext4文件系统并挂载到…...

【Python】探索PyPinyin 库:Python 中的中文拼音转换工具

花未全开月未圆&#xff0c; 半山微醉尽余欢。 何须多虑盈亏事&#xff0c; 终是小满胜万全。 —— 《对抗路—吕布》 PyPinyin 是一个功能强大的 Python 库&#xff0c;用于将中文文本转换为拼音。它提供了丰富的功能&#xff0c;能够满足各种中文文本处理的需求。在本文中&am…...

Linux运维总结:Centos7.6之OpenSSH7.4升级版本至9.3

一、环境信息 操作系统&#xff1a;Centos7.6.1810 OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 注意&#xff1a;升级后由于加密算法的区别&#xff0c;低版本的SSH工具可能无法连接&#xff0c;建议改用Xshell7或SecureCRT9.0以上版本。 二、注意事项 1、 检查防火墙或selinux是否…...

SD-WAN能解决企业网络的哪些问题?

SD-WAN技术的崛起为企业网络带来了全新的解决方案。在数字化转型、云计算、远程办公和5G等领域&#xff0c;SD-WAN技术展现出强劲的市场趋势。那么&#xff0c;SD-WAN究竟能够解决企业网络中的哪些难题呢&#xff1f; 提升网络带宽利用率 传统网络在连接分支机构时&#xff0c;…...

Python实战:Python集合的常见操作

Python集合&#xff08;set&#xff09;是一种无序且元素唯一的容器&#xff0c;它是Python中一种基本的数据结构。本文将详细介绍Python集合的常见操作&#xff0c;包括创建集合、添加和删除元素、集合运算、集合推导式等。 1. 创建集合 Python集合可以通过多种方式创建&…...

Linux: cloud: network: tap tx 丢包一例,vCPU的运行受到主机CPU的占用影响

https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/10/html/ovs-dpdk_end_to_end_troubleshooting_guide/high_packet_loss_in_the_tx_queue_of_the_instance_s_tap_interface 这个里面有一个丢包的例子是说&#xff0c;如果tx-queue的大小不够大&am…...

揭秘数据之美:利用 Bokeh 轻松构建实时、动态的数据可视化项目

1、引言 想让你的数据跃然 “屏” 上&#xff1f;厌倦了静态图表的平淡无奇&#xff1f;那么&#xff0c;今天就让我们一起探索 Python 世界中的瑰宝 ——Bokeh 库。这款强大的可视化工具以其流畅的交互性和实时更新能力&#xff0c;让你的数据呈现如电影般生动立体&#xff0…...

性能测试场景分析并设计?超细案例讲解

前言 性能测试场景&#xff0c;其实和功能测试没什么区别&#xff0c;只是侧重点不同。 我们在功能测试中经常用到的等价类边界值等分析和设计测试case的方法&#xff0c;目的是为了尽可能的覆盖业务场景&#xff0c;避免遗漏导致的功能逻辑缺失或者未达到预期。 而在性能测试…...

python面向对象练习一

假设我们正在开发一个学生管理系统&#xff0c;我们需要创建一个Student类来表示学生对象。 每个学生都有学号、姓名和年龄属性。我们还希望能够打印学生的信息&#xff0c;并在删除学生对象时输出一条提示消息。 要求使用__str__()管理学生信息的打印 要求使用__del__()管理删…...

【Linux-tar/gzip/zip】

Linux-tar/gzip/zip ■ tar■ gzip■ zip■ unzip解压缩 ■ tar 基本语法&#xff1a; tar [选项] 压缩后的压缩包 要压缩的文件 选项说明描述-cf :对文件或文件夹进行打包-v :显示压缩的进度- z :使用gzip压缩工具把打包后的文件进行压缩为.gz-j :使用bzip2压缩工具把打包后…...

第一代高通S7和S7 Pro音频平台:超旗舰性能,全面革新音频体验

以下文章来源于高通中国 如今&#xff0c;音频内容与形式日渐丰富&#xff0c;可满足人们放松心情、提升自我、获取资讯等需求。得益于手机、手表、耳机、车载音箱等智能设备的广泛应用&#xff0c;音频内容可以更快速触达用户。从《音频产品使用现状调研报告2023》中发现&…...

el-menu + el-badge 菜单加红点标识el-badge

el-menu el-badge 菜单加红点标识el-badge 一、el-menu组件menu/index.vuemenu/submenu.vue 二、获取/更新菜单红点标识 main.js引入全局组件/mixins全局混入 el-menu封装 一、el-menu组件 menu/index.vue 重点&#xff1a;定义 ref"menu"&#xff0c;切换路由时…...

python: inspect模块各函数的用法

python: inspect模块各函数的用法 inspect模块也被称为 检查现场对象。这里的重点在于“现场”二字&#xff0c;也就是当前运行的状态。 inspect模块提供了一些函数来了解现场对象&#xff0c;包括 模块、类、实例、函数和方法。 inspect函数主要用于以下四个方面 对是否是模…...

优化代码性能:C#中轻松测量执行时间

概述&#xff1a;本文介绍了在C#程序开发中如何利用自定义扩展方法测量代码执行时间。通过使用简单的Action委托&#xff0c;开发者可以轻松获取代码块的执行时间&#xff0c;帮助优化性能、验证算法效率以及监控系统性能。这种通用方法提供了一种便捷而有效的方式&#xff0c;…...

I2C学习总结

i2c概述 I2C&#xff08;Inter-Intergreted Circuit&#xff09; 是一种串行通信协议&#xff0c;用于集成电路之间完成数据传输&#xff0c;i2c用广泛用以各种领域&#xff0c;包括电子设备、嵌入式系统、工业自动化等&#xff1b; i2c仅仅只是一个数据传输的协议&#xff0c…...

身份证OCR识别接口接入实战:Python/Java/PHP/C#四语言代码示例与踩坑指南

#身份证OCR, #OCR接口, #API接入, #Python示例, #Java示例, #PHP示例, #踩坑指南, #石榴智能, #实名认证, #图片识别 身份证OCR识别接口接入实战&#xff1a;Python/Java/PHP/C#四语言代码示例与踩坑指南 作者&#xff1a;石榴智能技术团队 一、前言 身份证OCR识别已经不是什…...

STM32单片机学习(28) —— STM32的SPI外设

文章目录概述SPI通信的移位机制&#xff08;以bit为单位&#xff09;SPI外设框图第一部分&#xff1a;数据通路SPI通信的数据帧格式SPI外设移位机制&#xff08;以字节为单位&#xff09;第二部分&#xff1a;主机时钟生成器SPI通信时钟频率与传输速率第三部分&#xff1a;主从…...

告别C盘战士!ArcGIS 10.6安装路径选择与磁盘空间优化全攻略

告别C盘战士&#xff01;ArcGIS 10.6安装路径选择与磁盘空间优化全攻略当GIS初学者第一次安装ArcGIS 10.6时&#xff0c;往往会被其庞大的安装体积所震惊。许多用户习惯性地点击"下一步"&#xff0c;结果发现C盘空间被迅速吞噬&#xff0c;系统运行变得迟缓。本文将深…...

如何在macOS上免费解锁QQ音乐加密文件:完整指南

如何在macOS上免费解锁QQ音乐加密文件&#xff1a;完整指南 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转换结果…...

深度解析HS2-HF Patch:从技术框架到创作工具链的完整升级方案

深度解析HS2-HF Patch&#xff1a;从技术框架到创作工具链的完整升级方案 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾因Honey Select 2的原版体验受…...

【数据结构与算法】数据结构基础——栈和队列

目录栈和队列1. 栈1.1 栈的概念1.2 栈的实现方式分析1.3 栈的实现1.3.1 栈的初始化与销毁1.3.2 入栈与出栈1.3.3 栈的判空与有效元素个数1.3.4 栈顶元素1.4 栈的扩展1.4.1 两栈共享空间2. 队列2.1 队列的概念2.2 队列的实现方式分析2.3 队列的实现2.3.1 队列的初始化与销毁2.3.…...

天文时序数据分析:机器学习评估、半监督学习与无监督方法实战

1. 项目概述&#xff1a;当机器学习遇见星空 处理海量的天文时序数据&#xff0c;比如来自Kepler、TESS这些“巡天巨眼”的光变曲线&#xff0c;早已不是靠人眼一张张图去翻的时代了。数据量太大&#xff0c;噪声复杂&#xff0c;信号微弱&#xff0c;传统方法常常力不从心。这…...

对比按量计费与Token Plan套餐的实际成本差异

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比按量计费与Token Plan套餐的实际成本差异 在构建和运营基于大模型的应用时&#xff0c;成本控制是一个核心的工程考量。Taotok…...

Style-Bert-VITS2未来发展方向:从语音克隆到实时语音转换的技术演进路线

Style-Bert-VITS2未来发展方向&#xff1a;从语音克隆到实时语音转换的技术演进路线 【免费下载链接】Style-Bert-VITS2 Style-Bert-VITS2: Bert-VITS2 with more controllable voice styles. 项目地址: https://gitcode.com/gh_mirrors/st/Style-Bert-VITS2 Style-Bert…...

JMeter实现RSA签名验签全流程实战

1. 为什么RSA加密接口测试总卡在“连通但失败”这一步&#xff1f; 你有没有遇到过这种情况&#xff1a;接口文档写得清清楚楚&#xff0c;Postman里填好URL、Header、Body&#xff0c;一发请求——返回 {"code":4001,"msg":"签名验证失败"} …...