初学c++,碰到个求PI值的问题

dyjdyj37 2010-11-04 07:03:50

看到谭浩强c++里面有个求PI值的问题,小弟不大懂,源程序如下
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{int s=1;
double n=1,t=1,pi=0;
while((fabs(t)) > 1e-7)
{pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}
pi=pi*4;
cout<<"pi="<<setiosflags(ios::fixed)<<setprecision(6)<<pi<<endl;
return 0;
}


这里面

while((fabs(t)) > 1e-7)
{pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}这个式子怎么得来的,为什么要这样列呢
...全文
272 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是小数位 2010-11-05
  • 打赏
  • 举报
回复
這個是公式,還有其他的表示方法,如PI=6(1/1^2+1/2^2+1/3^2+..+1/N^2)
)
na2650945 2010-11-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dyjdyj37 的回复:]
学c++,数学到达到什么水平?
[/Quote]
啥水平都能学。
luciferisnotsatan 2010-11-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sunlp007 的回复:]

这个是个数学问题
求PI的公式为:PI=4*(1-1/3+1/5-1/7+1/9......)
至于(fabs(t)) > 1e-7
这个是循环中止条件,精确的小数点后7位
[/Quote]
+1
cobra_chen 2010-11-05
  • 打赏
  • 举报
回复
太戳了。
这个。。。。。。。。。。。。。。
实在不知道怎么解释。
数学的一些算法还是比较死的。
照着写就可以了
zhu200966 2010-11-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dyjdyj37 的回复:]

学c++,数学到达到什么水平?
[/Quote]
这个问题跟学C++,英语要达到什么程度是一样的,没有要求,你只要认识26个字母甚至是汉语拼音都可以,基本上问题就不大,当然你要是有一定的英语基础,看别人的源代码可能轻松一点。同样的,你有数学的基本知识,例如数的进制什么的,就可以学C++,当然你要研究算法的话是另外一回事。写软件=编程语言+专业领域知识。比如你要写一个加密的程序,就要了解加密的知识,然后结合语言特点,例如C++的oop特点,来编程实现;你要写这个求PI值的程序,就要知道这个公式,是一样的道理。
haogeai123 2010-11-05
  • 打赏
  • 举报
回复
学习了……
dyjdyj37 2010-11-05
  • 打赏
  • 举报
回复
学c++,数学到达到什么水平?
無_1024 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sunlp007 的回复:]
这个是个数学问题
求PI的公式为:PI=4*(1-1/3+1/5-1/7+1/9......)
至于(fabs(t)) > 1e-7
这个是循环中止条件,精确的小数点后7位
[/Quote]

是的 就是这个公式 运用迭代法求的
某某9 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sunlp007 的回复:]

这个是个数学问题
求PI的公式为:PI=4*(1-1/3+1/5-1/7+1/9......)
至于(fabs(t)) > 1e-7
这个是循环中止条件,精确的小数点后7位
[/Quote]+1
shexinwei 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sunlp007 的回复:]
这个是个数学问题
求PI的公式为:PI=4*(1-1/3+1/5-1/7+1/9......)
至于(fabs(t)) > 1e-7
这个是循环中止条件,精确的小数点后7位
[/Quote]

恩,主要是楼主不懂得这个公式。
sunlp007 2010-11-04
  • 打赏
  • 举报
回复
这个是个数学问题
求PI的公式为:PI=4*(1-1/3+1/5-1/7+1/9......)
至于(fabs(t)) > 1e-7
这个是循环中止条件,精确的小数点后7位

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧