C语言程序:已知π⼀2=(2⼀1)(2⼀3)(4⼀3)(4⼀5)(6⼀5)(6⼀7)…,取前1000项的积求π的近似值

算法过程也发来看看
2024-11-15 07:20:05
推荐回答(3个)
回答1:

//π/2=(2/1)(2/3)(4/3)(4/5)(6/5)(6/7)…
#include 
int main()
{double p=2,i;
 for(i=2;i<2001;i+=2)
   p*=(double)(i*i)/(i*i-1);
 printf("%lf",p);
}

回答2:

#include
#include
void main()
{
double pi=1;
int i;
for(i=1;i<=1000;i=i+2)
pi=pi*(i+1)/i*(i+1)/(i+2);
printf("%.20lf",pi*2);
}1000项只精确到小数点两位

回答3:

#include
int main()
{
double sum=1;
double an=1;
for(int i=1;i<=1000;i++)
{
if(i%2==0) an=(double)i/(i+1);
else an=(double)(i+1)/i;
sum*=an;
printf("%f\t",2*sum);//输出每次计算的近似值
}
printf("\n所求结果的近似值为:%f\n",2*sum);
return 0;
} 运行结果:3.143335 3.139854 3.143331 3.139857 3.143327
3.139861 3.143323 3.139865 3.143319 3.139869
3.143315 3.139873 3.143312 3.139876 3.143308
3.139880 3.143304 3.139884 3.143301 3.139888
3.143297 3.139891 3.143293 3.139895 3.143289
3.139899 3.143286 3.139902 3.143282 3.139906
3.143279 3.139910 3.143275 3.139913 3.143271
3.139917 3.143268 3.139920 3.143264 3.139924
3.143261 3.139927 3.143257 3.139931 3.143254
3.139934 3.143250 3.139938 3.143247 3.139941
3.143243 3.139945 3.143240 3.139948 3.143236
3.139952 3.143233 3.139955 3.143229 3.139959
3.143226 3.139962 3.143223 3.139965 3.143219
3.139969 3.143216 3.139972 3.143212 3.139975
3.143209 3.139979 3.143206 3.139982 3.143202
3.139985 3.143199 3.139989 3.143196 3.139992
3.143193 3.139995 3.143189 3.139998 3.143186
3.140002 3.143183 3.140005 3.143180 3.140008
3.143177 3.140011 3.143173 3.140014 3.143170
3.140018 3.143167 3.140021 3.143164 3.140024所求结果的近似值为:3.140024
Press any key to continue