【求圆周率】

【求圆周率】
//圆周率,它定义为圆周长与直径之比。
//现用π/4=1-1/3+1/5-1/7+⋯公式求π的近似值,直到某一项的绝对值小于〖10〗^(-6)为止。
//由公式π/4=1-1/3+1/5-1/7+⋯可推出π=(1-1/3+1/5-1/7+⋯)×4问题是(1-1/3+1/5-1/7+⋯)的值怎么算呢?
//设变量ans为最终结果,初始值0,使用 while()循环进行逐项累加直到某一项的绝对值小于〖10〗^(-6)为止。
//但是累加每一项的时候,分母在不断地递增(每次多2),所以需要定义一个变
//量来保存分母的值,此外每一项的正负号也在不断变换,这可能也需要一个变量来
//示,例如x=-x即可完成正负号的转变。
//【伪代码】
//float n=1.0 n表示分母,初始为1
//float t=1, ans=0; //t为循环中要加的每一项
//当(t的绝对值>1e-6)时 //1e-6就是1乘以10的-6次方{
// ans=ans+t //累加
// 更新分母的值
// 改变正负号
// 更新t的值
//输出ans*4的值

//float n=1.0     n表示分母,初始为1
    float n=1.0;
    //float t=1, ans=0;    //t为循环中要加的每一项
    float t=1, ans=0,x=1;
    //当(t的绝对值>1e-6)时        //1e-6就是1乘以10的-6次方{
    while(abs(t) > 1e-6){
        //   ans=ans+t //累加
        ans=ans+t;
        //    更新分母的值
        n = n + 2;
        //   改变正负号
        x=-x;
        //更新t的值
        t = x/n;
    }
    //输出ans*4的值
    cout << ans * 4 << endl;

你可能感兴趣的:(C++基础,NOIP算法,csp,算法,c++,开发语言)