您的位置:首页 > 其它

第一章 基本语法-9循环(do while)根据公式求Pi的值

2015-10-23 19:00 357 查看
Leibniz定理:



根据上面公式,求出pi的近似值,精确到 0.0001(万分位)。

分析:仔细观察各项可看出分母是奇数,符号一正一负,

假设An是公式中的第n项,可以得出:

An=(-1)^(n-1) * 1/(2n-1)

在程序中,(-1)^(n-1) 符号一整一负,可以通过下面方法实现:

(1)sign=-sign
(2)数学法cos(n pi) (-1)^n 等。

在这里,我们使用sign=-sign
方法来实现符号。

精确度怎样处理呢?只需判断An是否达到要求即可,即第n项An<0.000001即可(这里要多一位,因为最后的结果还要乘以4)

上代码:

#include <iostream>
#include<math.h>
using namespace std;

int main() {
double pi = 0;//记录pi的值
double sign = 1;//符号
double ai;//表示公式中的第i项
int i = 1;//项数
do {
//注意 ai = 1 / (2 * i - 1); 这样的写法是不对的,因为ai是double,右边是int
ai = 1.0 / (2 * i - 1);
pi = pi + sign * ai;
sign = -sign;
i++;
} while (ai >= 0.000001);
//do while 会先执行里面的内容,然后再做判断
pi=4*pi;
cout<<pi<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: