📄 新建 文本文档 (2).txt
字号:
#include<stdio.h>
#include<math.h>
double pow(double x,double y);
double A(int n);
double f(double x);
double A(int n)
{
int i;
double a=0.0,h=1.0;
for(i=1;i<=(int)pow(2,n);i++)
a=a+f(0.0+(2*i-1)*h/pow(2,n+1));
return a;
}
double f(double x )
{
double y;
y=4/(1+x*x);
return y;
}
void main()
{
int k;
double y=0.0,h=1.0;
double T[100],S[100],C[100],R[100];
long double o=0.5e-8;
T[0]=(h/2)*(f(0.0)+f(1.0));
T[1]=T[0]/2+(h/2)*f(0.0+h/2);
T[2]=T[1]/2+(h/4)*(f(0.0+h/4)+f(0.0+0.75*h));
T[3]=T[2]/2+(h/8)*A(2);
T[4]=T[3]/2+(h/16)*A(3);
S[0]=4*T[1]/3-T[0]/3;
S[1]=4*T[2]/3-T[1]/3;
S[2]=4*T[3]/3-T[2]/3;
C[0]=16*S[1]/15-S[0]/15;
C[1]=16*S[2]/15-S[1]/15;
R[0]=64*C[1]/63-C[0]/63;
for(k=4;;k++){
T[k+1]=T[k]/2+h/(pow(2,k+1))*A(k);
S[k-1]=4*T[k]/3-T[k-1]/3;
C[k-2]=16*S[k-1]/15-S[k-2]/15;
R[k-3]=64*C[k-2]/63-C[k-3]/63;
if(fabs(R[k-3]-R[k-4])>=o)continue;
else break;
}
printf("圆周率的值为%lf",R[k-3]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -