0

我正在尝试计算解决以下问题的 n 值。我不确定我在哪里搞砸了。我也尝试使用 do while 循环,但我无法找出逻辑错误。有人可以帮忙吗?

如果 S = √ (6*( 1+1/2^2+1/3^2 +1/4^2 + 1/5^2 + ... ) ) = (pi^2)/6,那么许多项的总和等于 PI 到小数点后 6 位。PI 到小数点后 6 位是 3.141592。我的代码的相关部分如下所示:

    double s = 0;


    for(int n=1;abs(sqrt(6*s) - 3.141592) >= pow(10,-6);n++) {

        s += (1/(pow(n,2)));

            NSLog(@"%i",n);

    }
4

1 回答 1

1
int abs(int i)

计算整数的绝对值。因此在

abs(sqrt(6*s) - 3.141592)

浮点数sqrt(6*s) - 3.141592被转换为int 第一个,一旦这个数字的绝对值小于一,它就会给出零。

你想fabs()改用。

于 2014-05-21T04:53:39.473 回答