C语言圆周率天书简化,c语言天书__圆周率的计算及分析

62e50291a81fc54b507f33cb80033297.gif c语言天书__圆周率的计算及分析

(5页)

f30998cb6906593ab96fd12b77e20e2c.gif

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

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

524d6daf746efaa52c3c71bbfe7ba172.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值