我正在尝试计算解决下面问题的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);
}
答案 0 :(得分:1)
int abs(int i)
计算整数的绝对值。因此在
abs(sqrt(6*s) - 3.141592)
浮点数sqrt(6*s) - 3.141592
转换为int
首先,只要该数字的绝对值小于1,就会给出零。
您想改用fabs()
。