C++;采用莱布尼兹公式的Pi近似 我是C++初学者,编码本身,所以请原谅任何词汇灾难。我在互联网上找不到这个具体的问题,但我仍然很难得到我需要的结果

C++;采用莱布尼兹公式的Pi近似 我是C++初学者,编码本身,所以请原谅任何词汇灾难。我在互联网上找不到这个具体的问题,但我仍然很难得到我需要的结果,c++,for-loop,approximation,C++,For Loop,Approximation,所以我用莱布尼兹公式来近似π,它是: pi=4·[1-1/3+1/5-1/7+1/9…+(-1^n)/(2n+1)] 我已经写了一篇文章,但困扰我的代码的主要部分是: if (terms > 0){ double partial = 0; for (i = 0; i < terms; i++) if (i % 2 == 0) partial -= (pow(-1,terms))/((2.0 *

所以我用莱布尼兹公式来近似π,它是:

pi=4·[1-1/3+1/5-1/7+1/9…+(-1^n)/(2n+1)]

我已经写了一篇文章,但困扰我的代码的主要部分是:

if (terms > 0){

        double partial = 0;

        for (i = 0; i < terms; i++)
            if (i % 2 == 0)
                partial -= (pow(-1,terms))/((2.0 * i) + 1);
            else
                partial += (pow(-1,terms))/((2.0 * i) + 1);

        double newPi = 4 * partial;

        cout << "The approximation is " << newPi << " using " << terms << " terms.\n";

}
if(术语>0){
双偏=0;
对于(i=0;i你可以用if/else来确定符号,但是你也可以用pow(-1,terms)
。我只想去掉
pow
,用
1
替换它,因为你已经在做
部分+=
部分-=
,这取决于
I
是奇数还是偶数。另外,我认为你的
+=
-=
应该是另一种方式。

你有一个if/else来确定符号,但是你也可以做
pow(-1,术语)
。我只想去掉
pow
,用
1
替换它,因为你已经在做
partial+=
partial-=
,这取决于
I
是奇数还是偶数。另外,我认为你的
+=
-=
应该是另一种方式。

试试这个:

if (terms > 0){
     double partial = 0;
     for (i = 0; i <= terms; i++)
         partial += pow(-1,i)/(2.0 * i + 1);
     double newPi = 4 * partial;
     cout << "The approximation is " << newPi << " using " << terms << " terms.\n";
}
if(术语>0){
双偏=0;
对于(i=0;i试试这个:

if (terms > 0){
     double partial = 0;
     for (i = 0; i <= terms; i++)
         partial += pow(-1,i)/(2.0 * i + 1);
     double newPi = 4 * partial;
     cout << "The approximation is " << newPi << " using " << terms << " terms.\n";
}
if(术语>0){
双偏=0;
对于(i=0;i