c语言天书__圆周率的计算及分析

(5页)

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

19.90 积分

求圆周率 π 的 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语言天书__圆周率的计算及分析相关推荐

  1. C语言中双下划线__的作用

    C语言中双下划线__的作用 以单下划线(_)表明是标准库的变量 双下划线(__) 开头表明是编译器的变量 所以 双下划线__只是C语言的一个合法标识符 不一定是变量, 也可以是函数,宏等. 同时双下划 ...

  2. 静态语言和动态语言,解释和编译

    前提 通过高级语言编写的源码,我们能够轻松理解,但对于计算机来说,它只认识二进制指令,源码就是天书,根本无法识别.源码要想执行,必须先转换成二进制指令. 所谓二进制指令,也就是由 0 和 1 组成的机 ...

  3. 1,Java语言基础-Java语言概述和必要计算机知识

    Java语言基础 Java语言概述 1,Java语言发展史 Java语言本质 Java是面向对象的高级语言,它是由c和c++发展而来. Java发展语言历史概述 Java 是由 James Gosli ...

  4. C语言 __FILE__ - C语言零基础入门教程

    目录 一.__FILE__简介 二.__FILE__实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.**__FILE**__简介 ...

  5. 零基础学C语言(C语言入门)

    C语言入门(初识C语言) 初识C语言 前言 什么是C语言 为什么要选择C语言作为学习的第一门语言 一.第一个C语言程序 1.1 #include 1.2 int main() 1.3 printf 1 ...

  6. WML语言基础-WML语言基础(WAP建站)

    WML语言基础-WML语言基础(WAP建站)一 作者:青燕    来源:青燕网    更新时间:2007-8-19 19:22:22    浏览次数:255 完成wap服务器的建立和wap浏览器的安装 ...

  7. c开发 易语言支持库,易写易库-用易语言开发易语言支持库.pdf

    易写易库-用易语言开发易语言支持库 易写易库(EXEK)用户手册 版本:0.2 作者:liigo,/liigo 时间:2008.10 概述 EXEK EXEK "易写易库(EEXXEEKK) ...

  8. C语言-初始C语言(一)

    目录 前言 1.C 语言简介 2.第一个C语言程序 2.1 #include 预处理指令 2.2 int main()主函数 2.3 printf("Hello, World!\n" ...

  9. [Lua语言编程]Lua语言基础知识

    文章目录 `Lua` `Lua`语言的起源 `Lua` 特性 `Lua下载` Linux 系统上安装 Mac OS X 系统上安装 Window 系统上安装 `Lua` `Lua`语言语法 `Lua` ...

  10. c语言表达式3178的值为,【C语言】C语言运算符

    c语言 &取地址运算符的理解 对于c语言中的&运算符,百度百科是这样定义的:(&p)则是这样一种运算,返回当时声明p 时开辟的地址:但是根据我对代码的观察,我觉得&am ...

最新文章

  1. 大数据是怎么知道你去过新发地的?
  2. c语言吧百度贴吧经典100例,C语言程序设计经典100例
  3. openresty + lua
  4. 报错:TypeError: can‘t pickle _thread.RLock objects
  5. 解决MySQL查询数据不一致诟病
  6. 类型转换static_cast,dynamic_cast,const_cast,reinterpret_cast等
  7. 参数展示初始三层架构
  8. 开源linux远程桌面,10分钟配置自己的vnc [linux远程桌面]
  9. thinkphp框架知识点
  10. dubbo源码解析-spi(一)
  11. Node.js:Node基础
  12. Java编程思想笔记目录
  13. scare机器人如何手眼标定_SCARA机器人手眼标定之目标抓取
  14. 大数据杀熟?我从银行数仓项目学到了什么
  15. U盘中Word文档打不开怎么办?
  16. HTML_html自动播放音乐
  17. CoAP协议学习笔记 1.3 用UDP工具来调试CoAP
  18. vs2013配置OpenGL+简单案例分析
  19. mysql5.7.10 二进制包_mysql 32 位安装教程mysql5.7 二进制包安装
  20. 中国海洋大学c语言上机作业,中国海洋大学c语言程序2015春季学期上机题考试题及答案.doc...

热门文章

  1. Vue+springboot流浪宠物救助领养网站
  2. 超强实时跟踪系统首次开源!支持跨镜头、多类别、小目标跟踪!
  3. oracle库sql根据拼音查汉字,根据拼音首字母模糊查询数据库中文字段
  4. 基于java的在校大学生贷款管理系统
  5. 省级c语言笔试题,C语言笔试题库.doc
  6. 软件工程——软件需求分析
  7. 计算机网络基础课程思政,《计算机网络技术》课程思政融入.pdf
  8. 幼儿园编程机器人课程介绍
  9. CPU内部看门狗,外部看门狗以及软件看门狗
  10. linux 如何看图软件,深度看图(linux看图软件) v1.2 官方最新版