【发布时间】:2014-05-21 04:44:47
【问题描述】:
我正在尝试计算解决以下问题的 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);
}
【问题讨论】:
-
仔细检查每一步的 s 是什么。
1/(...)可能会转换为整数,因此您可能需要1.0/(...)作为猜测。 -
Pi 到小数点后 6 位不是 3.141592。它是 3.141593。
-
感谢 Josh B,但这似乎不起作用。也是用户,感谢您的更正,尽管这是一个小问题(我不太担心 +/- 1 左右。
标签: objective-c c integral riemann