程序说明与注释
#include<stdioh>
#include<mathh>
int main()
{
double e=01,b=05,c,d;
long int i; /i: 正多边形边数/
for(i=6;;i=2) /正多边形边数加倍/
{
d=10-sqrt(10-bb); /计算圆内接正多边形的边长/
b=05sqrt(bb+dd);
if(2ib-ie<1e-15) break; /精度达1e-15则停止计算/
e=b; /保存本次正多边形的边长作为下一次精度控制的依据/
}
printf("pai=%15lf\n",2ib); /输出π值和正多边形的边数/
printf("The number of edges of required polygon:%ld\n",i);
}
问题分析与算法设计
利用“正多边形逼近”的方法求出π值在很早以前就存在,我们的先人祖冲之就是用这种方法在世界上第一个得到精确度达小数点后第6位的π值的。
利用圆内接正六边形边长等于半径的特点将边数翻番,作出正十二边形,求出边长,重复这一过程,就可获得所需精度的π的近似值。
假设单位圆内接多边形的边长为2b,边数为i,则边数加倍后新的正多边形的边长为:
x=√——————
2-2√———
1-bb
——————
2
周长为:
y=2 i x i:为加倍前的正多边形的边数
#include
void main()
{
double pi=0,sum=0,k=1;
int i=1;
do{
sum=sum+i/k;
k=k+2;
i=-i;
}
while(1/k>00001);
pi=4sum;
printf("PI的值是:%f\n",pi);
}
vc++60下调试通过,pi值为3141393
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
#include<iostream>
#include<conioh>
using namespace std;
void main()
{
double dPI;//π
int iFenMu;//分母
int iFenZi;//分子
int iCount;//计数
int iSign;//记录正负号
//初始化各变量
iFenZi = 4;
iFenMu = 1;
iSign = 1;
dPI = 0;
for(iCount=1;iCount<=1000;iCount++)//用for语句实现
{
//公式π=4 – 4/3 + 4/5 – 4/7 + 4/9 -4/11 + … …
dPI += ((iSign)(((double)iFenZi)/((double)iFenMu)));//π的累加,相当于dPI=dPI+(((iSign)(((double)iFenZi)/((double)iFenMu))));
cout<<"PI["<<iCount<<"]="<<dPI<<" ";//输出第iCount项的值
if(iCount%4==0)
{
cout<<endl;
}
iFenMu+=2;//分母增加2
iSign=-iSign;//正负号交替变化
}
cout<<"Press any key to continue"<<endl;
getch();
iFenZi = 4;
iFenMu = 1;
iSign = 1;
dPI = 0;
iCount =1;
while(iCount<=1000)//用while语句实现
{
dPI += ((iSign)(((double)iFenZi)/((double)iFenMu)));
cout<<"PI["<<iCount<<"]="<<dPI<<" ";
if(iCount%4==0)
{
cout<<endl;
}
iFenMu+=2;
iSign=-iSign;
iCount++;
}
cout<<"Press any key to continue"<<endl;
getch();
iFenZi = 4;
iFenMu = 1;
iSign = 1;
dPI = 0;
iCount =1;
do//用do while语句实现
{
dPI += ((iSign)(((double)iFenZi)/((double)iFenMu)));
cout<<"PI["<<iCount<<"]="<<dPI<<" ";
if(iCount%4==0)
{
cout<<endl;
}
iFenMu+=2;
iSign=-iSign;
iCount++;
}while(iCount!=1001);
}
以上就是关于用C语言编个程序,求π(派)全部的内容,包括:用C语言编个程序,求π(派)、C语言 编程用π/4=1-1/3+1/5-1/7+.....的公式求π的近似值、用C++编程计算π等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)