这是我要解决的问题:
编写一个使用Gregory系列计算pi值的程序。程序的输入将是一个称为限制的十进制值。程序应通过对序列项求和,来计算pi的值,但是直到被求和项的值变得小于或等于limit的值时,程序才会终止pi的值。总结。因此,加到总和上的序列的最后一项是其值小于或等于limit的值的第一个项。 然后程序会打印出该点的pi的计算值,以及通过计算求和的实际项数。
这是输出的样子:
Input Limit: 0.005
Calculated Value of PI: 3.1659792728432157
No. of Terms Summed: 41
我的代码:
class Scratch {
public static void main(String[] args) {
int k = 1;
double pi = 0.0;
for (int term = 1; term < 50000; term++){
double currVal = 0.0;
if (term % 2 == 0) {
currVal = (double) -4 / k;
} else {
currVal = (double) 4 / k;
}
pi = pi + currVal;
if(((double)4/k) < 0.005){
System.out.println(pi);
System.out.println(term);
break;
}
k = k + 2;
}
}
}
我的代码的输出:
3.144086415298761
401
请让我知道我哪里出错了?任何建议都将不胜感激。