您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 辅导 >> 正文    
  C趣味程序百例(25)求π的近似值 【注册男护士专用博客】          

C趣味程序百例(25)求π的近似值

www.nanhushi.com     佚名   不详 

78.求π的近似值
   请利用“正多边形逼近”的方法求出π的近似值
*问题分析与算法设计
   利用“正多边形逼近”的方法求出π值在很早以前就存在,我们的先人祖冲之就是用这种方法在世界上第一个得到精确度达小数点后第6位的π值的。
   利用圆内接正六边形边长等于半径的特点将边数翻番,作出正十二边形,求出边长,重复这一过程,就可获得所需精度的π的近似值。
   假设单位圆内接多边形的边长为2b,边数为i,则边数加倍后新的正多边形的边长为:

周长为: 
    y=2 * i * x        i:为加倍前的正多边形的边数

*程序与程序注释
#include<stdio.h>
#include<math.h>
void main()
{
   double e=0.1,b=0.5,c,d;
   long int i;                /*i: 正多边形边数*/
   for(i=6;;i*=2)            /*正多边形边数加倍*/
   {
      d=1.0-sqrt(1.0-b*b);     /*计算圆内接正多边形的边长*/
      b=0.5*sqrt(b*b+d*d);
      if(2*i*b-i*e<1e-15) break;         /*精度达1e-15则停止计算*/
      e=b;      /*保存本次正多边形的边长作为下一次精度控制的依据*/
   }
   printf("pai=%.15lf\n",2*i*b);       /*输出π值和正多边形的边数*/
   printf("The number of edges of required polygon:%ld\n",i);
}
*运行结果
      pai=3.141592653589794
      The number of edges of required polygon:100663296

*思考题
   请用外切正多边形逼近的方法求π的近似值。

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目