用以下无穷级数计算圆周率:PI=4-4/3/5-4/7+4/9- 编程序计算:要计算多少项才能得到3.14、3.1415、3.14159

说一说思路吧?感觉网上很多思路都不大正确...... 说一说思路吧?感觉网上很多思路都不大正确... 展开
 我来答
匿名用户
2011-04-01
展开全部
圆周率:
PI=4-4/3+4/5-4/7+4/9-……。
编程序计算:要计算多少项才能得到3.14 3.1415 3.14159;*/
#include <iostream>
#include <iomanip>
#include <cmath>
int fun(double t,double r,int d);
using namespace std;
int main()
{
fun(3.14,0.005,3); 通过调用函数,减少代码
fun(3.1415,0.00005,5);
fun(3.14159,0.000005,6);
return 0;
}
int fun(double t,double r,int d)
{ double PI(4);

int a(1); //a分别用于统计三个结果
for(int m=1;((PI-t)<=(-1)*r||(PI-t)>=r)||m==1;a++,m++)
{PI=PI+pow(-1,m)*4.0/(2*m+1);

}
cout<<"计算"<<a<<"项才能得到"<<setprecision(d)<<PI<<endl; //检验是否到了指定精度
return 0;
}

有问题吗?
另外,团IDC网上有许多产品团购,便宜有口碑
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伺机待发哦
2011-03-30 · 超过14用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:20.8万
展开全部
#include <stdio.h>
#include <math.h>
void main()
{
double p,s;
int c,k,iw=3,ip=2,i,ep;
for(k=1,ep=100;k<=4;k++,ep*=10.0)
{
p=3.141592;
c=0,s=0.0;
for(i=1;(int)(s*ep)-(int)(p*ep);i++,c++)
{
s=s+4./(2*i-1.);
s*=-1;
}
printf("\np=%f,s=%*.*f,c=%d,i=%d\n",p,iw++,ip++,s,c);
}
printf("\n");
}
更多追问追答
追问
你这个答案明显抄袭的...
追答
我晕,好的东西 不就是让拿来用的么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
珊瑚海PCS
2011-03-31 · TA获得超过100个赞
知道答主
回答量:64
采纳率:100%
帮助的人:35.6万
展开全部
matlab编程或者C++编程都可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式