c语言圆周率天书解释,c语言天书圆周率的计算及分析.doc
c语言天书圆周率的计算及分析.doc
求圆周率π的C程序分析long a=10000, b, c=2800, d, e, f[2801], g;main(){ for(;b-c;) f[b++]=a/5;for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)for(b=c; d+=f[b]*a, f[b]=d%--g, d/=g--, --b; d*=b); scanf("%s");}简短的4行代码,就可以精确计算机出800位的PI(圆周率)值。实在太震撼人心了。这样的程序也能运行,竟然还能能完成这样让人难以置信的任务,真是太神了。一、源程序本文分析下面这个很流行的计算PI的小程序。下面这个程序初看起来似乎摸不到头脑,不过不用担心,当你读完本文的时候就能够基本读懂它了。程序一:很牛的计算Pi的程序#include int a=10000,b,c=2800,d,e,f[2801],g; main(){for(;b-c;)??? f[b++]=a/5;for(;d=0,g=c*2;c -=14,printf("%.4d",e+d/a),e=d%a)??? for(b=c; d+=f[b]*a,f[b]=d%--g,d/=g--,--b; d*=b);}二、数学公式数学家们研究了数不清的方法来计算PI,这个程序所用的公式如下:pi = 2 +?1/3 * (2 +?2/5 * (2 +?3/7 * (2 + ...? (2 +?k/2k+1 * (2 + ... ))...)))至于这个公式为什么能够计算出PI,已经超出了本文的能力范围。下面要做的事情就是要分析清楚程序是如何实现这个公式的。我们先来验证一下这个公式:程序二:Pi公式验证程序#include void main(){?? float pi=2;?? int? i;?? for(i=100;i>=1;i--)????? pi=pi*(float)i/(2*i+1)+2;?? printf("%f\n",pi);?? getchar();}上面这个程序的结果是3.141593。三、程序展开在正式分析程序之前,我们需要对程序一进行一下展开。我们可以看出程序一都是使用for循环来完成计算的,这样做虽然可以使得程序短小,但是却很难读懂。根据for循环的运行顺序,我们可以把它展开为如下while循环的程序:程序三:for转换为while之后的程序#include int a=10000,b,c=2800,d,e,f[2801],g;main() {int i;for(i=0;i
c语言圆周率天书解释,c语言天书圆周率的计算及分析.doc相关推荐
- c语言指针官方解释_C语言中的指针解释了–它们并不像您想象的那么难
c语言指针官方解释 Pointers are arguably the most difficult feature of C to understand. But, they are one of ...
- c语言中编译解释,C语言既可以编译执行又可以解释执行吗? 编译执行怎么解释? 解释执行又怎么解释?...
C 语言程序仅可以解释执行. 解释程序是将源程序(如BASIC)作为输入,解释一句后就提交计算机执行一句,并不形成目标程序.编译程序是把高级语言(如FORTRAN.COBOL.Pascal.C等)源程 ...
- c语言switch case解释,C语言switch case语句详解
C语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况.例如,输入一个整数,输出该整数对应的星期几的英 ...
- python怎么解释语言_python属于解释语言吗
Python是一门解释型语言? Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在. 如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写 ...
- 一段话系列-Java是否是解释执行语言?
2019独角兽企业重金招聘Python工程师标准>>> Java是半执行半解释执行语言,首先,Java会由Javac编译成字节码,这是编译:然后字节码会交由JVM中的解释器进行解释执 ...
- 回旋矩形C语言,C语言回旋函数解释下,该如何处理
当前位置:我的异常网» C语言 » C语言回旋函数解释下,该如何处理 C语言回旋函数解释下,该如何处理 www.myexceptions.net 网友分享于:2013-06-08 浏览:30次 C ...
- php编写解一元一次方程,解释C语言(逐句) 解一元一次方程的 怎样用C语言编一个解一元二次方程的程序?...
导航:网站首页 > 解释C语言(逐句) 解一元一次方程的 怎样用C语言编一个解一元二次方程的程序? 解释C语言(逐句) 解一元一次方程的 怎样用C语言编一个解一元二次方程的程序? 相关问题: 匿 ...
- c语言高精度计算n的阶乘,高精度计算n阶乘的c语言源代码和解释
<高精度计算n阶乘的c语言源代码和解释>由会员分享,可在线阅读,更多相关<高精度计算n阶乘的c语言源代码和解释(9页珍藏版)>请在金锄头文库上搜索. 1.1高精度计算大数阶乘的 ...
- 解释词超文本标记语言html,超文本标记语言html的解释
超文本标记语言的网络地址格式是怎样的 HTML是超文本标记语言英文的简写, 从字面就能够理解,它比普通纯文字的文本要强悍些,并可以进行标记,是一种用来制作超文本文档的简单标记语言.超文本传输协议规定了 ...
- 编译型和解释型、动态语言和静态语言、强类型定义语言和弱类型定义语言
一.编译型与解释型语言 我们编写程序也就是源代码基本是用高级编程语言,比如JavaScript, java, c等等,这些语言计算机是不理解的,所以需要转化(翻译)成计算机理解的机器语言,或者说目标C ...
最新文章
- 跟阿里云技术专家阙寒一起深度了解视频直播CDN技术
- @程序员:这些瓜没吃到,可以告别互联网了!
- 台式电脑键盘f1是计算机怎么取消,开机F1怎么取消,教您开机F1怎么取消
- 如何实现 C/C++ 与 Python 的通信?
- RocksDB 写入流程详解
- 胡润发布《2019胡润80后白手起家富豪榜》:拼多多黄峥1350亿第一
- Python让繁琐工作自动化——chapter18 GUI控制键盘与鼠标
- Error loading syntax file “packages/zzz A File Icon zzz/aliases/Plain Text(CSV).sublime-synax“:……解决
- 计算机键盘基础知识课件,高中信息技术计算机基础应用课件:键盘操作练习
- (转) latch 入门
- python3爬虫下载音乐_python3.4爬虫批量下载音乐
- 京东数据化运营(三)- 复购率
- python写闲鱼脚本_自动化篇 - 躺着收钱!闲鱼自动发货机器人来啦~
- 数组、字符串及对象-常用方法
- 自定义漂亮的圆形进度条
- 奥利给! loading效果这么搞真的太棒了
- 人民币贬值之后该买什么
- 常见近红外/红外定量分析指标(论文投稿)
- 哪个软件可以用来python编程_python编程用哪个软件
- 【去耦电容如何布局放置】