【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语言求圆周率π(三种方法)
题目一: 利用公式①计求π的近似值,要求累加到最后一项小于10^(-6)为止。 程序代码: #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端口:FTP(文件传输协议)服务端口。FTP允许用户进行文件传输,如上传和下载文件。22端口:SSH(安全外壳协议)服务端口。SSH用于远程登录到服务器,并提供加密的数据传输。23端口&#…...
Linux(ubuntu) 安装kotlin
Kotlin 是一种基于 Java 语言的静态类型编程语言,它可以运行于 JVM 上 1. 安装 Java Development Kit (JDK) Kotlin 运行于 JVM 上,所以首先需要安装 Java Development Kit(JDK) Ubuntu 或 Debian 系统 sudo apt update sudo a…...
微信小程序提交成功设置提示
在微信小程序中,当用户成功提交表单或完成某项操作后,通常我们会设置一个提示来告知用户操作已完成。这种提示通常可以通过几种方式来实现,例如使用 wx.showToast 方法显示一个短暂的提示消息,或者跳转到一个新的页面并显示成功信…...
Pycharm与Anaconda安装
网址: Pycharm:https://www.jetbrains.com/pycharm/ Anaconda:https://www.anaconda.com/download/ 官网下载速度太慢可以选择到清华源下载:https://repo.anaconda.com/archive/ 一:Anaconda安装 安装: …...
阿里云数据盘挂载目录
1、先登录服务器创建新目录aaa 2、云盘都快照备份下。后续操作完核实无误了,您根据您需求删除快照就行, 然后登录服务器内执行: fdisk -l lsblk blkid ll /aaa 3、执行:(以下命令是进行数据盘做ext4文件系统并挂载到…...
【Python】探索PyPinyin 库:Python 中的中文拼音转换工具
花未全开月未圆, 半山微醉尽余欢。 何须多虑盈亏事, 终是小满胜万全。 —— 《对抗路—吕布》 PyPinyin 是一个功能强大的 Python 库,用于将中文文本转换为拼音。它提供了丰富的功能,能够满足各种中文文本处理的需求。在本文中&am…...
Linux运维总结:Centos7.6之OpenSSH7.4升级版本至9.3
一、环境信息 操作系统:Centos7.6.1810 OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 注意:升级后由于加密算法的区别,低版本的SSH工具可能无法连接,建议改用Xshell7或SecureCRT9.0以上版本。 二、注意事项 1、 检查防火墙或selinux是否…...
SD-WAN能解决企业网络的哪些问题?
SD-WAN技术的崛起为企业网络带来了全新的解决方案。在数字化转型、云计算、远程办公和5G等领域,SD-WAN技术展现出强劲的市场趋势。那么,SD-WAN究竟能够解决企业网络中的哪些难题呢? 提升网络带宽利用率 传统网络在连接分支机构时,…...
Python实战:Python集合的常见操作
Python集合(set)是一种无序且元素唯一的容器,它是Python中一种基本的数据结构。本文将详细介绍Python集合的常见操作,包括创建集合、添加和删除元素、集合运算、集合推导式等。 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 这个里面有一个丢包的例子是说,如果tx-queue的大小不够大&am…...
揭秘数据之美:利用 Bokeh 轻松构建实时、动态的数据可视化项目
1、引言 想让你的数据跃然 “屏” 上?厌倦了静态图表的平淡无奇?那么,今天就让我们一起探索 Python 世界中的瑰宝 ——Bokeh 库。这款强大的可视化工具以其流畅的交互性和实时更新能力,让你的数据呈现如电影般生动立体࿰…...
性能测试场景分析并设计?超细案例讲解
前言 性能测试场景,其实和功能测试没什么区别,只是侧重点不同。 我们在功能测试中经常用到的等价类边界值等分析和设计测试case的方法,目的是为了尽可能的覆盖业务场景,避免遗漏导致的功能逻辑缺失或者未达到预期。 而在性能测试…...
python面向对象练习一
假设我们正在开发一个学生管理系统,我们需要创建一个Student类来表示学生对象。 每个学生都有学号、姓名和年龄属性。我们还希望能够打印学生的信息,并在删除学生对象时输出一条提示消息。 要求使用__str__()管理学生信息的打印 要求使用__del__()管理删…...
【Linux-tar/gzip/zip】
Linux-tar/gzip/zip ■ tar■ gzip■ zip■ unzip解压缩 ■ tar 基本语法: tar [选项] 压缩后的压缩包 要压缩的文件 选项说明描述-cf :对文件或文件夹进行打包-v :显示压缩的进度- z :使用gzip压缩工具把打包后的文件进行压缩为.gz-j :使用bzip2压缩工具把打包后…...
第一代高通S7和S7 Pro音频平台:超旗舰性能,全面革新音频体验
以下文章来源于高通中国 如今,音频内容与形式日渐丰富,可满足人们放松心情、提升自我、获取资讯等需求。得益于手机、手表、耳机、车载音箱等智能设备的广泛应用,音频内容可以更快速触达用户。从《音频产品使用现状调研报告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 重点:定义 ref"menu",切换路由时…...
python: inspect模块各函数的用法
python: inspect模块各函数的用法 inspect模块也被称为 检查现场对象。这里的重点在于“现场”二字,也就是当前运行的状态。 inspect模块提供了一些函数来了解现场对象,包括 模块、类、实例、函数和方法。 inspect函数主要用于以下四个方面 对是否是模…...
优化代码性能:C#中轻松测量执行时间
概述:本文介绍了在C#程序开发中如何利用自定义扩展方法测量代码执行时间。通过使用简单的Action委托,开发者可以轻松获取代码块的执行时间,帮助优化性能、验证算法效率以及监控系统性能。这种通用方法提供了一种便捷而有效的方式,…...
I2C学习总结
i2c概述 I2C(Inter-Intergreted Circuit) 是一种串行通信协议,用于集成电路之间完成数据传输,i2c用广泛用以各种领域,包括电子设备、嵌入式系统、工业自动化等; i2c仅仅只是一个数据传输的协议,…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
02.运算符
目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&:逻辑与 ||:逻辑或 !:逻辑非 短路求值 位运算符 按位与&: 按位或 | 按位取反~ …...
OCR MLLM Evaluation
为什么需要评测体系?——背景与矛盾 能干的事: 看清楚发票、身份证上的字(准确率>90%),速度飞快(眨眼间完成)。干不了的事: 碰到复杂表格(合并单元…...
