题目如下:
历史上有许多计算圆周率pai的公式,其中,格雷戈里和莱布尼茨发现了下面的公式:
pai = 4*(1-1/3+1/5-1/7 ….)
参见【图1.png】
这个公式简单而优美,但美中不足,它收敛的太慢了。
如果我们四舍五入保留它的两位小数,那么:
累积1项是:4.00
累积2项是:2.67
累积3项是:3.47
。。。
请你写出它累积100项是多少(四舍五入到小数后两位)。
注意:只填写该小数本身,不要填写任何多余的说明或解释文字。
public class _2_圆周率__ {
public static void main(String[] args) {
double result = 4.0;
for(int i = 2;i <= 100;i++) {
double b = 2 * i - 1;
if(i % 2 == 1) {
result = result + 4 / b;
} else {
result = result - 4 / b;
}
}
System.out.printf("%.2f", (result));
}
小注:Java中简单浮点数类型float和double类型在计算时常出现精度问题,其它编程语言也是如此。在大多数情况下,计算的结果是准确的,但是多试几次(可以做一个循环)就可以试出类似上面的错误。
###四舍五入